MeiTuan

高仿美团客户端 React-Native 版
授权协议 MIT
开发语言 JavaScript
所属分类 手机/移动开发、 网站客户端
软件类型 开源软件
地区 国产
投 递 者 苏胤
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

这是一个用React-Native写的美团客户端。使用了React-Native 0.42版本。遵循ES6语法。主要实现了美团的四个一级页面(团购、附近、订单、我的),以及部分二级页面(团购详情、Web页面)。

所有功能都是用JavaScript写的,iOS和Android的代码复用率达到了97%(别问我这个数字怎么来的,我瞎掰的)。

这个Demo的静态类型检查工具使用了Facebook的Flow。它让我写JavaScript的时候,更有安全感。个人觉得可以用两个字形容这个工具,那就是:灰常牛逼!

我试着让这个Demo的结构尽量接近实际项目,同时使用比较简单方式去实现功能。这样可以让刚接触ReactNative的人(比如我自己...)更够容易理解代码。

所有的JS代码都在src目录下。

Paste_Image.png

  • common
    通用的工具类

  • img
    所有图片资源

  • scene
    所有场景

  • widget
    通用的UI控件

  • api.js
    网络请求的接口

  • RootScene.js
    App的主入口,类似iOS中的RootViewController

该项目没有使用Redux。因为个人觉得目前大部分的中小型App并不需要Redux。如果盲目的将Redux添加到项目中,并不能带来太多的益处。
鲁迅曾说过:

"如果你不知道是否需要 Redux,那就是不需要它。"

Redux的作者 Dan Abramov 说过:

"只有遇到 React 实在解决不了的问题,你才需要 Redux 。"

哦,另外一个没有用Redux的原因,是我还不太会用。

App的页面跳转、TabBar、Navigation,全部通过第三方的库react-native-router-flux实现。这是一个非常牛逼的库,可以实现很多自定义的跳转功能。

App中很多页面都使用了同一个网络接口,这不是为了让代码更加简洁,仅仅是我偷懒 >.<

第三方依赖

安装

  1. Clone the repo

    $ git clone https://github.com/huanxsd/MeiTuan.git
    $ cd MeiTuan
  2. Install dependencies (npm v3+)

    $ npm install
  3. Running on iOS

    $ react-native run-ios

常见问题

Could not connect to development server

打开新的terminal窗口,并执行:

  $ react-native start

瞎扯蛋

我之前一直在写Objective-C,但不久前看了ES6的语法和Flex布局方式后,我便马上爱上了这种开发方式。
这个Demo花了大概5天时间,是我的第一个ReactNative项目。
如果对这个Demo有任何的意见或建议,或者喜欢ReactNative的朋友,欢迎在下方留言。我会在第一时间回复 :)

最后

如果你喜欢这个Demo,请给我一个star :)
我将持续更新这个Demo

  • 到百度首页 django注册登录 百度一下 百度首页 登录 网页 资讯 视频 图片 知道 文库 贴吧 采购 地图 更多» 找到相关资讯2篇全部资讯按焦点排序 Django操作数据库实战——实现登录功能 坏坏侃电影 2019年03月21日 16:57 7.编写登录逻辑 8.完善前端提示信息 9.测试功能 a.账号、密码正确 b.账号正确…Django操作数据库实战——实现注册功能 03-2011:2

  • Android-UI-MeiTuan(仿美团筛选PopupWindow下拉弹出框)源码 资源下载此资源下载价格为1D币,请先登录 资源文件列表 MeiTuan(仿美团筛选PopupWindow下拉弹出框)/.gitignore , 81 MeiTuan(仿美团筛选PopupWindow下拉弹出框)/.idea/.name , 7 MeiTuan(仿美团筛选PopupWindow下拉弹出框)/.id

 相关资料
  • 面试时间:08/23 面试形式:视频会议 面试岗位:移动软件开发 Base:北京 一面(90min) 自我介绍 你是做服务端开发,为什么想到客户端这边? 算法 手写两个排序,并且讲述其算法思想。我写了快排和归并。 两个算法是稳定算法吗?为什么快排不是稳定的算法? 时间和空间复杂度? 快排为什么会退化到O(n^2)。 计网 OSI7层网络模型展开讲讲? 介绍一下HTTP协议的优缺点? 了解HTTP协

  • 面试时间:08/24 面试形式:视频会议 面试岗位:移动软件开发 Base:北京 二面(70min) 确认岗位、事业部、工作城市等信息; 自我介绍。 中途打断我说不想听后端的项目经验 为什么转码(40min) 为什么要转码? 为什么要学C++?C++互联网用的那么少。 你凭什么觉得自己比科班的强? 为什么不考研到计算机专业? 为什么要做这几个项目? 为什么要投客户端? 自学的学习过程?每天有多少的

  • 给自己攒攒人品 #面经# 但面试官小姐姐超级nice 是我不争气😭😭许愿给我一次补救的机会😭 自我介绍 对于IM项目你是有参考什么框架吗,还是自己搭建的 仪器科学有哪些计算机的课程? 是你一个人做的吗 Windows下做的吗 有没有给用户安装进行测试? 自定义的协议包和协议表作用? 和发消息的包在同一个包里吗? 如何知道对方上线?发起对话之前的步骤? 多久建立一次链接?链接多久断 对方掉线了

  • 1、handler中的post和send方法有什么区别 2、Android中的动画有哪几种,有什么区别 3、使用camera2有什么优势,相比调用系统相机 4、

  • 问项目 算法:1. 多线程交替打印线程安全 2. 线程安全单例 智商:10升的水桶 放到 3 7L,得到5升的水。 线程安全单例差点没写出来,实在是回忆不起来了,只记得双if,面试官每行代码的作用都问了,比如两个if的作用。 智商题差点没做出来,第一次遇到。

  • (二面完没立刻记录,现在凭借记忆写的,应该不全) #软件开发笔面经# 平时怎么使用git的 git reset和git revert的区别 说一下异常分类 平时常见的异常 什么是线程安全 给了一段代码,让我判断是否安全,在什么情况下会出现问题,怎么修改。 从产品设计和技术角度设计一个支付 平时是怎么学习的 沟通能力和抗压能力怎么样 反问

  • #软件开发笔面经# 说一下java面向对象的特性 描述一下接口和抽象类,相同点和不同点 如果接口和抽象类使用了同样的方法签名,会发生什么。 在java中一个字符串的string是可变的吗 stringbuilder和stringbuffer的区别 线程不安全的原因 可见性是什么意思 两个线程不能及时同步的原因 缓存在计算机结构属于什么硬件类的缓存 如果计算机是单核cpu,会出现这种可见性问题吗(原

  • 0927,美团二面,1h 1. 自我介绍 2. 深挖项目 1. SwiftUI 怎么样,和 UIKit 比如何,你是怎么学的 Swift,有没有做方案的选型 2. 动画如何实现(自己瞎掰头,他说差不多是这个意思) 3. 序列化怎么做的 4. 网络库用的什么 5. iOS 这边 MVVM,APNs 怎么做的 3. 有没有了解过一些其他的移动端框架,Flutter 画点粒度做 UI 4. 实验室项目