遇到的问题

  做游戏的时候用的是cocos2dx+lua,游戏开发自有它的一套框架机制。而现在公司主要项目要做android和iOS应用。本文主要介绍如何搭建简单易用的App框架。

如何解决

  对于新手来说,接触一门新的知识,往往会思考该怎么入手,技术范围是什么。因为作为一个成熟的操作系统来说,android和iOS的复杂性和多样性毋庸置疑。想要短时间内成为专家是不可能的。但是你只需要掌握其核心原理,然后通过学习源代码和查询资料,不断将知识或融汇贯通,或浅尝辄止,长此以往就会形成完整的知识体系。任何技术都是如此。

  技术都是相通的,android和ios是两个类似的移动平台,做的又是页面和功能完全一致的应用,因此只需要一个解决方案就够了。

  在此推荐这本书:《App研发录:架构设计、Crash分析和竞品技术分析》。

  作者从项目负责人的角度,阐述了从代码框架,团队管理,自动化工具,错误分析收集,log收集,分析不同app使用的技术,人员管理,人员招聘等各个方面,作者自己的看法和经验。写的非常不错。

最终方案

  一个完整的应用框架是什么样的呢?良好的可读性和扩展性就不多说了。主要有2个功能,一是网络通信功能,二是实现选定的设计模式(MVC,MVP)。

  那么我们这里要实现的简单,易用的移动app框架都包含什么东西呢?
  1. 决定程序框架:MVC,MVP,MVVM等等。
  2. 编写网络模块,网络数据处理。
  3. 根据选定的框架编写主要支撑代码,某些系统类的重定义其生命周期(android的Activity,iOS的UIViewControler)。
  4. 数据本地化。
  5. 添加统一公共方法(时间,日志,错误规避,异常处理,等等)

完整目录如下:

  • 仅需6步,教你轻易撕掉app开发框架的神秘面纱(1):确定框架方案
  • 仅需6步,教你轻易撕掉app开发框架的神秘面纱(2):MVP比MVC更好吗
  • 仅需6步,教你轻易撕掉app开发框架的神秘面纱(3):构造具有个人特色的MVP模式
  • 仅需6步,教你轻易撕掉app开发框架的神秘面纱(4):网络模块的封装
  • 仅需6步,教你轻易撕掉app开发框架的神秘面纱(5):数据持久化
  • 仅需6步,教你轻易撕掉app开发框架的神秘面纱(6):各种公共方法及工具类的封装

仅需6步,教你轻易撕掉app开发框架的神秘面纱(1):确定框架方案相关推荐

  1. 仅需6步,教你轻易撕掉app开发框架的神秘面纱(5):数据持久化

    遇到的问题 有的时候程序中需要全局皆可访问的变量,比如:用户是否登录,用户个人信息(用户名,地区,生日),或者一些其他信息如:是否是首次登录,是否需要显示新手引导等等. 其中有些数据需要持久化到本地硬 ...

  2. 仅需6步,教你轻易撕掉app开发框架的神秘面纱(4):网络模块的封装

    程序框架确定了,还需要封装网络模块. 一个丰富多彩的APP少不了网络资源的支持,毕竟用户数据要存储,用户之间也要交互,用户行为要统计等等. 使用开源框架 俗话说得好,轮子多了路好走,我们不需要自己造轮 ...

  3. 仅需6步,教你轻易撕掉app开发框架的神秘面纱(3):构造具有个人特色的MVP模式

    1. MVP的问题 之前我们说过MVP模式最大的问题在于:每写一个Activity/Fragment需要写4个对应的文件,对于一个简易的app框架来说太麻烦了.所以我们需要对MVP进行一定的简化. 关 ...

  4. 仅需6步,教你轻易撕掉app开发框架的神秘面纱(6):各种公共方法及工具类的封装

    为什么要封装公共方法 封装公共方法有2方面的原因: 一是功能方面的原因:有些方法很多地方都会用,而且它输入输出明确,并且跟业务逻辑无关.比如检查用户是否登录,检查某串数字是否为合法的手机号.像这种方法 ...

  5. 仅需6步,教你轻易撕掉app开发框架的神秘面纱(2):MVP比MVC更好吗

    对于程序框架的选择,由于android天然的MVC,本来不需要另外设计直接使用即可.但是我更加钟情于MVP模式,对于其将ui完全与业务逻辑分离的思路很赞同. 那么什么是业务逻辑?个人认为,对数据(即M ...

  6. 怎么快速修改gif尺寸?仅需三步教你改gif大小

    很多时候我们从网上下载的gif动图或者是从电影.电视剧中截取的高清gif动图尺寸过大不方便传输,想要对gif图片尺寸修改的时候应该如何调整gif尺寸呢?很简单,使用[GIF中文网]的gif改大小(ht ...

  7. python爬虫excel数据_最简单的爬数据方法:Excel爬取数据,仅需6步

    原标题:最简单的爬数据方法:Excel爬取数据,仅需6步 在看到这篇文章的时候,大家是不是都还停留在对python爬虫的迷恋中,今天就来教大家怎样使用微软的Excel爬取一个网页的后台数据,注:此方法 ...

  8. 隐藏esp_仅需一分钟教你看懂汽车内的隐藏功能,哪些功能是你不知道的?

    车内的按键多种多样,而且越高档的车,按键就越多.除了少数国产车,绝大部分车辆的按键标识都是用英文字母表示,从而导致不少车主只能通过查看说明书才知道是什么意思. 今天小编整理了车内各种按键标识,不是很清 ...

  9. php 商城套餐搭配功能,速卖通商品搭配套餐功能已上线!设置速卖通搭配套餐仅需三步...

    据雨果网获悉,速卖通商品搭配套餐功能已于 10 月 19 日上线.商品搭配套餐的主要功能及作用,主要是帮助速卖通的卖家,通过自行选择商品,设置不同商品间搭配优惠促销价格,提高商品推广内容的丰富性及专业 ...

最新文章

  1. 只能匹配第一列吗_VLOOKUP会用了吗?不会的抓紧看
  2. leetcode-217-存在重复元素
  3. 七天来学习ASP.NET MVC (两)——ASP.NET MVC 数据传输
  4. Why NoSQL?
  5. SAP Fiori 修改catalog group名称的技术实现
  6. xdocument查找节点值_二叉查找树(java)
  7. 业务实时监控服务ARMS推出小程序监控支持各种小程序
  8. 2021人工智能竞赛白皮书:1000场竞赛的深度分析
  9. fineuploader php服务端
  10. 日程管理 FullCalendar
  11. sql语句mysql_MySQL基本的Sql语句
  12. java8官网下载地址
  13. I have nothing 中文歌词 歌词
  14. oracle用imp导入dmp文件
  15. 配置Oracle VM Manager服务器虚拟化软件
  16. xdg在Linux中的用法,Linux实用命令之xdg-open
  17. java程序设计实验报告代写_代做CS实验报告、代写java c/c++ CS课程设计作业、代写程序作业...
  18. java 长链接转短链接_java长链接转短链接代码和如何跳转使用
  19. 怎样学好Python
  20. 怎么批量设置EDIUS中的图片持续时间

热门文章

  1. javascript的call()方法与apply()方法的理解
  2. Java中的static关键字的用法
  3. 启用IIS的Gzip压缩 【转】
  4. ROS中使用摄像头的问题
  5. 实现HTTP协议Get、Post和文件上传功能——使用libcurl接口实现
  6. 汇编程序设计与计算机体系结构软件工程师教程笔记:指令
  7. tiny-cnn开源库的使用(MNIST)
  8. 【视频】视频方面大神博客总结
  9. 【数据库】mysql移植
  10. 什么时候是创业最佳时机?7个最佳的励志创业时机GET了吗