Flutter + Firebase:我们构建OfflinePal的最好朋友-我们的新世界统治活动服务

我们在建什么?

OfflinePal,我们正在构建一项新的服务(应用程序+网站),旨在收集从音乐会,电影院和博物馆到远足和游乐场地的所有活动,用户可以在其中直接预订门票,对活动进行评论和评分,询问和回答问题,赚取积分等。

所有活动都经过分类和组织以适合每个用户的兴趣和行为,例如个性化。

我们要覆盖的第一个国家是我们自己可爱的挪威,其武器库中有成千上万种精彩的活动可供探索。

挪威被​​征服之后,我们将继续前进,并将OfflinePal扩展到其他几个国家,而我们此后将一无所获,只不过是世界统治地位,并将我们这个小小的星球上所有国家的所有重要活动添加到这里办法。

因此,如果我们现在不介意所有初创企业所面临的常规挑战,那就是: 进行稳固的投资,寻找最佳资源,确保创造出新颖独特的事物,并制定一项在不久的将来赚钱的商业计划; 大多数创业公司也面临着一些技术挑战

那么,像这样的初创公司面临哪些技术挑战?

哦,天哪,我们从哪里开始? 有这么多!

开发本机应用程序应选择什么? 我们需要什么技术服务? 如何处理搜索? 什么数据库? 自托管还是托管托管解决方案? Web解决方案使用哪种编程语言? 交易电子邮件呢?

而且,我们应该为数以百万计的记录计划和制定规范吗?还是只是从一些基本的东西开始并从中获取呢? 毕竟,我们都已经了解到, 建议为应对世界统治而设计系统。 那好吧。

而这一切的解决方案?

经过定期研究,我想在开发新的令人敬畏的软件之前,我们都会做。我们有100%的信心,我们已找到最适合我们的最佳技术堆栈 ,从而能够实现开发完美活动服务的目标。

首要挑战:本机跨平台移动开发

多年以来,我们已经使用各种解决方案开发了各种应用程序,并且由于多年的挫败感,我们很快就找到了两种选择。 来自Facebook的React Native和来自Google的Flutter

尽管React Native在很多方面都很棒,但我们还是决定使用Google的Flutter,主要是出于以下原因:

  • Flutter使用Google开发的Dart,它非常易于学习。 Dart多年来一直处于稳定状态,因此成熟了。 我们也知道Flutter团队和Dart团队紧密合作,以确保针对移动设备的Dart VM进行了优化等等。
  • Flutter文档简直太棒了,而React Native文档简直就是一团糟
  • Flutter周围的工具很棒,例如IntelliJ IDEA插件
  • 内置的UI库(例如Material Design和Cupertino),尽管Flutter可以实现任何需要的UI
  • Flutter由Google制造,我们完全信任Google。 是的,我们知道Google多年来已经弃用了许多项目,但是直觉是Google将在很长一段时间内继续支持Flutter,仅因为构建出色的移动应用程序对Google的商业模式至关重要
  • 重复使用我们的Java,Swift和ObjC代码制作插件
  • 灵活的API,适用于从动画,手势或奇特效果到所有内容
  • 而且,热装! 无需多说,但这值得单独切换到Flutter

Flutter有什么缺点吗? 当然! Flutter刚从Alpha进入Beta版,请相信我-我们仍然为许多您会说的“基本”缺陷和问题而苦恼,例如缺少基本的Firestore功能。

就是说,Google团队一直(而且仍然)非常出色,每天都与我们也参与其中的社区紧密合作,优先解决问题。

在今年晚些时候的后续文章中,我们将更深入地介绍如何使用Flutter和Firebase

还有其余的堆栈?

服务本身:Google Firebase

我们将所有内容构建在Google Firebase之上,在那里我们需要所有必需的服务(如Firebase托管,Firebase Cloud Functions和Firebase Firestore)来运行服务的核心,并在应用程序和Web上具有所有数据和共享功能。

网络版本:Vue.js

这是比较棘手的问题之一。 我们长期以来一直考虑使用React,甚至Angular都花了很短的时间,但是我们都在Angular 1中开发了东西,然后在平坦的地面上全速前进-突然面对珠穆朗玛峰又名Angular 2。

使用Vue.js,一切都变得非常简单。 它已经存在了很长时间。 它有据可查。 它具有与Firebase堆栈的简单连接器。

是的,我们只是将所有网络版本文件存储在一个单独的Firebase Hosting项目中。 如果Google失败了,我们也肯定会失败..🙂

分析和观点:Mixpanel

我们使用Mixpanel来跟踪所有重要事件,并为专门登录服务的用户测量所有KPI。

我们从Mixpanel获得的见解对于实现我们在全球范围内提供最佳活动服务的使命至关重要。

是的,我们当然也将Google Analytics(分析)用于一般的“访客”分析。

个性化内容/机器学习资料:TensorFlow

为了处理个性化内容部分(这将是解决方案的重要部分),我们再次使用Google TensorFlow进入了Google堆栈。

最初由Google Brain团队的研究人员和开发人员开发的事实,就是我们有可能使用这些天才开发的软件,这一事实足以为该部分服务选择TensorFlow。

嘿-TensorFlow是OpenSource-我们都喜欢,对吧?

交易电子邮件:邮戳

发送针对每个用户进行细分的出站电子邮件可能很棘手。 人们不希望电子邮件最终出现在用户的垃圾邮件文件夹中。 人们需要一个简单的模板系统,支持变量等。而且API必须简单易行且坚如磐石。

在对各种系统进行了一些测试之后,我们决定使用Postmark,它为我们提供了所有这一切,包括很棒的相关文章,以及有关如何优化从“欢迎”电子邮件到其他“更新”电子邮件的所有技巧的绝妙技巧。

当我们向Google提出建议时,他们推荐了SendGrid,但是我们再次相信自己的直觉-并选择了Postmark。

我们用于运行项目的服务

除了技术堆栈之外,我们还使用以下服务来运行项目。

  • 项目管理:Asana
  • 通讯:松弛
  • 文档:融合
  • Git:Bitbucket
  • 语音通话:环聊

我们也有我们的会计系统,处理账单,向开发人员的薪水等-但这是专门为支持挪威法律而设计的挪威系统,因此我们不在此介绍。

对我们使用的工具有疑问吗? 随意在评论部分添加一行!