本文转载自 InfoQ

作者 | Joshua Fonseca   译者 | 平川

作为电影爱好者,我和女友每周要看 1-2 部电影。但是,我们经常不知道要看什么。光是选电影,就得花一个多小时。怎么办?我开发了自己第一款 App,已有 400 多用户。

我和女友总是找不到合适的电影看。通常,这个过程是这样的:

我:你想看什么电影?

女友:我不知道,你想看什么?

我:我们看《金刚大战哥斯拉》吧

女友:不,扎克·斯奈德的《正义联盟》怎么样?

我:不,太长了。《米纳里》怎么样?

女友:不,太严肃了。...... 怎么样?

所以,你懂的。

我们通常每周看 1 到 2 部电影,所以经常这样……

这种事不只是发生在我和女友身上。以前,我和朋友真的花一个多小时选电影。

问题很简单:我们不知道自己愿意看哪些电影。我甚至不知道愿意看什么电影。有什么解决办法吗?

作为一名软件工程师,我以技术为生。我可以做一些东西来解决这个问题。但前提是,我要先研究一些,人们解决这个问题的方法。而我在推特上发现了有用的信息。

我很兴奋,这似乎是个好主意:如果你和你的另一半都有一款 App,你可以向左或向右滑动流媒体上的电影。当你们找到的电影相匹配时,它会让你们知道。—— c a i t l i n

这并非一个原创想法,但我之前从未做过手机应用,所以我认为这将是一个很酷的学习体验。除此之外,我还可以用它来解决我和我关心的人之间的实际问题,这非常特别。

1 如何开发一款手机 App?

在基础层面上,我知道自己需要:

  • 处理 API 调用的后端服务器

  • 一个实际渲染应用的前端客户端

  • 一个存储电影和用户爱好的数据库

  • 一个用于存储图片的对象存储解决方案

既然是第一次研究手机应用开发,为什么不学习各个层次上的新东西呢?

 前端:React Native

我不想编写原生代码,因为……,我没时间做那个。跨平台开发显然更理想。据我所知,我的选择要么是 React Native,要么是 Flutter。我在之前的一些项目中用过 React。虽然我不是 React 专家,但我至少了解一些它的基本知识。所以,我决定使用 React Native。

值得注意的是,我用了 expo 来处理实际的构建和部署过程。它为我节省了很多时间!

https://docs.expo.io/?fileGuid=1nTXNuk6H50PbHMt

 后端:express.js

对此,我没有太多要说的。我以前从未用过 Node.js,但经常听说它,所以我想尝试一下。

我很惊讶,它竟然如此容易使用!如果你理解了 API 的工作原理,就很容易深入下去。而且,我第一次编写了自己的中间件——太棒了!节省了我很多时间!

 数据库:MongoDB

我以前只用过 SQL 数据库,所以我想也应该尝试一下面向文档的数据库。编写模型非常简单,但是我很难理解 MongoDB 的查询和聚合流。

我认为,查询还可以优化,但是,我能让它工作就不错了。

 Blob 存储:Azure Storage

我选择用它的唯一原因是,每月可以获得 100 美元的 Azure 免费信贷。说实话,我认为它的文档很差,交互也很难。不过,这是可行的,但有些情况,我仍然不清楚应该如何处理。

获取数据

我编写了一个自动化的网络爬虫,它用新电影填充我的数据库。你知道世界上只有大约 50 万部电影吗?我可以在数据库中添加进所有电影。

2 TimeLine

 构建 App

开发应用花费的时间最少,这让我很沮丧。我花了 2-3 周时间才把应用构建到能运行的地步(除了一些小 Bug 的修复)。

结果给我留下深刻印象。我能够:

  • 看看我和我的朋友想看什么

  • 成立一个小组,看看我们愿意看什么

  • 根据服务(Netflix、Hulu 等)过滤和查看电影

  • 按类型过滤和查看电影

 通过应用商店审批

这个过程非常糟糕。我必须一次性支付 25 美元才能进入谷歌 Play 商店,每年支付 100 美元才能进入苹果应用商店。

此外,还有一些愚蠢的要求。

我需要至少提供 X 张截图,而且还指定了每张图的分辨率。最重要的是,我等了很长时间才获得批准。这个等待过程真的让我很痛苦。

苹果,谷歌。让我发布应用吧,你们已经掏空了我的口袋!

 市场营销

虽然这个 App 最初是为我和我的朋友们准备的,但是如果我必须花钱开发这个应用,也许能吸引更多用户,把钱赚回来。

Reddit

和往常一样,我把它传遍了 reddit,并得到一些相当积极的反馈,在 r/sideproject 上的多个帖子获得大约 100 个赞。

Facebook

我把创意分享给大学的朋友们,还在 facebook 上发了帖子。他们很支持我,帮我推广这个应用。

此外,我发现一个名为 loom 的服务,并录下我对所有注册朋友的感谢。这不仅可以让他们见到我,还能鼓励他们与朋友分享。

3 后续

目前,WeWatch 大约有 400 个用户,这比我以前做过的任何东西都要多!上周末,我的女友让她的朋友们和我们一起过周末,我们要找部电影看。这是我的机会:

我:我们用 WeWatch 吧

女友:不,那太费时间了。我们就看《空中大灌篮》吧!

看来,我还要做些改进。

原文链接:https://jerseyfonseca.com/blogs/wewatch?fileGuid=1nTXNuk6H50PbHMt

我为女友做了一款App相关推荐

  1. 有要做兼职的吗?我们做了一款app,找个推广合作人

    有要做兼职吗?我们做了一款app,找个做推广合伙人等. app是一款平时可以网购查券领券的工具.虽然同类软件也不少,不过我们给用户返现佣金比例高达百分之六十,同时,可以精准查询淘宝链接是否有优惠券,只 ...

  2. 历时五天用 SwiftUI 做了一款 APP,阿里工程师如何做的?

    作者|姜沂(倾寒)  出品|阿里巴巴新零售淘系技术部 导读:自 2014 年苹果发布会发布 Swift 之后, Swift 经过多年迭代,终于达到了 ABI 稳定版本,也意味着 Swift 做为稳定的 ...

  3. c++怎么做app_怎么做一款app

    现在市场开发一款app软件,这些开发app软件的公司会负责app开发的哪些方面,收费一般多少 基本上一款APP已经是完整给你的了,包括这个APP的代码,数据库,还有UI.会交付给你一整套完整的APP. ...

  4. 快速了解做一款App所用到的技术,及实现流程

    01.前言 前面的几篇文章我分享了前端的三个核心技术(html.css.js) 以及分享了一些便于开发和写代码的框架(jquery.bootstrap) 学会了上面这些,那么我们平时看到的网页和看到的 ...

  5. 测试手机型号的软件,世界上有这么多型号的手机,开发一款App,该如何做测试?...

    如题,世界上有这么多型号的手机,苦逼的创业者开发一款 App 后,该如何做测试才好呢?某种意义上,早在 2011 年就成立的手机游戏及手机应用云测试平台"Testin云测"就是解决 ...

  6. 爆款app们是如何做主动拉新和被动拉新的?

    爆款app们是如何做主动拉新和被动拉新的? 拼多多自打横空出世以来就发展迅猛,虽然源源不断被爆出诸多负面新闻,但依然没有阻挡它拥有一大批忠实拥趸席卷全国的步伐.眼看着拼多多市值紧逼京东,俘获了无数家庭 ...

  7. Hi,我们为技术人做了款APP,叫“IT168文库”!

    Hi,技术人! 我们做了一款与"IT168文库"同名的APP! 不管你是刚刚进入职场努力寻求上进的新人, 还是渐渐成熟却越来越担心"35岁"中年危机的前辈. 或 ...

  8. 腾讯表示不会做汽车;华为第一款预装鸿蒙 OS 手机上线;工信部通报138款APP;丨黑马头条

    苹果因夸大iPhone防水功能遭起诉 苹果公司在纽约被起诉,有消费者试图就防水性问题进行集体诉讼,声称前者在营销中对iPhone的抗液体浸润能力进行了虚假陈述.与许多智能手机制造商一样,苹果公司在其i ...

  9. 做一款APP需要准备哪些资料?上架需要多久?

    之前讨论过开发一个APP需要多少钱和需要多久,今天我着重来讨论一下做一款APP之前我们需要准备哪些资料呢?还有就是APP开发完成后上架需要多久呢?首先我先来说一下APP上架需要准备哪些材料? 不同的A ...

最新文章

  1. MinkowskiBroadcast广播
  2. HDU OJ Super Jumping! Jumping! Jumping!
  3. eclipse启动tomcat遇到404错误
  4. JavaFX自定义控件– Nest Thermostat第2部分
  5. Cloud一分钟 | 谷歌关闭社交平台;亚马逊云服务拿下10亿美元订单,劲敌微软败走麦城...
  6. Springboot+Mysql物流快递在线寄查快递系统
  7. linux下搭建uvm环境,转:使用QuestaSIM进行UVM仿真环境搭建
  8. Python 揭秘斐波那契定律,如何帮助码农分析股票?| 技术头条
  9. 灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割
  10. oracle 没有rlwap,[20140723]安装使用anysql.txt
  11. android c callstack,[MTK] 如何在android native code 打callstack
  12. vs 2017 专业版 密钥
  13. 计算机组成原理 实验六 存储器容量扩展
  14. Python实现离线字典+听写单词(一):获取离线字典
  15. vue日历排班组件_VUE实现日历组件功能
  16. SQL SERVER数据库中勒索病毒 SQL数据库中病毒恢复数据
  17. 2018厦门大学计算机技术分数线,厦门大学录取分数线2018 厦门大学录取分数最高的专业...
  18. 2019目标,做个精力充沛的人,身体工作双丰收
  19. 通过Python绘制分段函数
  20. 树莓派CM4烧录系统

热门文章

  1. 7-5 冒泡法排序(20 分)
  2. 体系设计建模软件系统
  3. 计算机电池的性能参数,【戴尔灵越3567笔记本电脑使用总结】体积|电池|性能_摘要频道_什么值得买...
  4. 网络推广主管工作汇报实操指南
  5. 大疆睿炽Tello EDU无人机python操控之一——使用socket调试工具控制Tello EDU无人机
  6. BZOJ 4605: 崂山白花蛇草水 树套树 权值线段树套kdtree
  7. 大数据之数仓基石Hive3.1.2实战
  8. 金融数学作业——二叉树方法定价(上证50ETF期权)
  9. 解决VirtualBox CentOS8无法调整分辨率的问题
  10. 北京信息科技大学计算机研究生在哪个校区,北京信息科技大学有几个校区,哪个校区最好及各校区介绍...