发布时间:2021-1-8 分类: 行业资讯
一个山寨优步APP的整个过程
编者按:一组做事的程序,优点来友们求购你的你喜欢不喜欢你的
去年,我创立了Codename One Academy,并向我们的团队询问他们想要学习什么。他们的反应倾向强烈,他们都表达了学习如何制作像优步这样的应用程序的愿望。起初我想用Uber风格创建一些东西,但最后我决定构建一些看起来非常接近原生app的东西,并且在某种程度上几乎完全相同。我的动机是:
我想让设计看起来更专业,并且遵循在市场中排名第一的公司的设计总是正确的;
通过了解优步的决定,人们可以学到很多东西——我知道我做到了;
如果一开始我可以创造不同的东西,那么我可能会为自己带来无法估量的好处。当然,这在现实世界中并不存在。
我使用“克隆”这个词来表示这种相似性,但这并不意味着它与优步完全相同。优步的应用程序是无所不包的,它在细枝末节上很难,我只有一个星期的时间来编写所有相关代码……我的目标是建立框架。至于细节,它实在是无法实现。 。
阅读版本太长了
我有一些经验:
优步的Android和iOS版本由同一个人制作;
Android版本修复了一些错误,但iOS没有;
虽然Android和iOS版本的用户界面几乎相同,但Android没有iOS功能;
Android版Uber不适用于本机短信拦截;
优步功能不仅仅是形式;
对于像Uber这样的应用程序,进行快速更改和设计决策的能力非常重要;
在现有工具的帮助下制作像优步这样的应用并不困难。
我学到了什么?
我甚至没有想过要学到很多东西,但我确实理解了令我惊讶的事情。其中之一是Uber在iOS系统中的原生设计,它大量用于材料设计。例如:
iOS上的Uber原生应用
您可以注意到,这看起来几乎与应用的Android版本完全相同。主要的Android交互式界面元素可用:浮动按钮,原生设计文本输入,箭头后退键和hellip; …
Android版本看起来与iOS版本完全相同!
我一直认为本机小部件通过创造熟悉感来增加参与度。但事实上,陈和我一直在争论这个问题。我很佩服“系统的原始感觉”,但陈在所有平台上都喜欢相同的用户界面。
似乎优步站在陈的一边。毕竟,它在Android和iOS上都有类似的用户界面设计。
仔细考虑它是非常合理的。这样做一次都没问题。您可以看到他们可以在一个组中挂起两个品牌。只要整个APP看起来正确,直觉就没有错。
在Android 2.x和iOS 6.x操作系统之间的差距几乎无法克服的时代,在Android应用程序中,左上角有一个退出按钮,这是世界上最好的…
但是现在,即使你不使用跨平台工具,两者的融合也会带来很多好处。
切换样式仍然不同
我不知道这是否是故意的,但Uber软件对Android和iOS的切换方式却完全不同。 Android版使用原生设计开关(但我似乎没有看到主开关),相比iOS覆盖和滑动。
如果这是故意做的,则可能表明“感觉”是“直觉的”。我猜他们没有对此给予足够的重视,但很难确定。
漏洞问题
这是Uber在Android中的登录界面。
Android登录界面
相同的界面在iOS中看起来相似,但存在渲染漏洞。
iOS版登录界面的渲染漏洞
如果您没有发现此错误,我想提醒您“请输入您的手机号码”中的问题。
优步绝对做了很多优化工作,但仍然存在漏洞。我想这应该是因为他们太天真了,我不知道该国家的国际代码是否是三位数。 Android版本(以及我们的山寨版)处理得非常好,可能是因为Android在全世界都很受欢迎,所以这个bug已经修复了。
但是,Android版本的修复程序未移植到iOS版本。
某些功能Android没有
如果您使用Uber作为iOS版本,您会发现登录界面的背景模式发生了变化,这给人一种愉悦的感觉。
所以我很好奇为什么他们不在Android版本中。 ……我怀疑工程师可能人手不足。
为了解决这个问题,我已经研究了一段时间并找出原因。事实上,这很明显。因为矢量图形存在一些问题,如果运行这样的转换程序,软件将报告错误:
“ OpenGLRenderer:路径太大而无法渲染成纹理”
“道路很大,无法渲染。 ”的
我找到的唯一解决方案是通过绘制新图像来禁用硬件渲染。
不好的是,要思考问题所在并不容易。渲染路径不会抛出异常,只是无法显示。所以我无法返回软件渲染,我不知道路径出了什么问题。
坐标是否超出范围或坐标数据是否不正确?
研究与之相关的Android代码并没有多大帮助。
但无论如何,几乎相同的用户界面,有一个功能Android没有iOS,但它总是有点不舒服。
Android的短信服务不会被阻止
关于Android,我最喜欢的一件事是你可以作为开发人员进行低级控制。但这是一把双刃剑,但在某些情况下,它有明显的好处,而且很糟糕;&//>
一个很好的例子是SMS阻止支持。注册或登录软件时,用户需要接收短信验证码,Android系统本身可以读取信息并自动填写验证码输入框,可以节省手动输入。一步。
但优步不能这样做。它不使用Android的这个功能。
似乎优步因为这些年来需要“太多许可证”而受到批评,可能是因为他们只关心系统并且不允许通话。 ……
我不知道它是否适用于应用程序编程接口。无论如何,我将这个功能添加到我们的山寨版本中,然后Android版本的注册节省了很多。
仅垂直屏幕APP
手机是我个人的项目,我喜欢可以横屏的应用程序,但优步只能使用垂直屏幕。
我也明白他们坚持垂直屏幕。支持水平屏幕意味着非常非常大的工作负载。例如,我上面提到的登录界面错误可能是水平屏幕中的另一个外观,需要重新设计。
以上所有我认为Uber显然比形式更具功能性。他们跳过水平屏幕支持并击中目标。我能理解这一点。
他们改变很多
在我开始使用Utilizing用户界面之前,我没有注意到用户界面的更改速度。例如,先前的历史记录键是位于屏幕底部的圆圈,现在,交互式手势被更改为搜索区域下拉列表。
对于像Uber这样的应用程序,进行快速更改和设计决策的能力至关重要。
使用最少的选项提供最多的服务
当然,我并不是一丝不苟地设计整个应用程序,而且我的90%的工作都基于一些Google应用程序。
我使用谷歌地图和一些网络服务(方向,位置,地理编码),还使用Twilio和Braintree进行短信和计费功能。有了这个,我可以在不到一周的时间内完成优步的大部分功能!
在现有工具的帮助下制作像优步这样的应用并不困难。
主要问题是您可以在跨平台工具之上使用什么级别的API支持。
优步的Android版本和我的山寨版
我对优步工程师有无限的钦佩,制作如此复杂的应用程序并不容易。
我认为创新确实在创造新事物,但这并不意味着它必须是新事物。我们改进上一代的东西,使其完美,就像建立一个优步山寨的简单过程。在未来,我们将看到更好的应用程序。
原文地址:本文发表在Hackernoon,标题是我从克隆优步应用中学到的东西
原作者:Shai Almog
译者:席唐,由36禾汇编部门制作。编辑:郝鹏程
翻译地址:http://36kr.com/p/5115830.html
地图来自网络