[TOC]android
本文主要面向笔者在Web、iOS、Android、WP等移动端开发中的经验总结出在现有以及将来的全部客户端的学习中应该掌握的知识脉络图。通俗来讲,就是帮着梳理学习笔记的目录结构。欢迎你们一块儿补充,Git地址:这里git
Advanced:高级内容
Architect:架构设计
MVC
MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写。它表示的是一种常见的客户端软件开发框架。github
MVP
MVVM
MVVM 是 Model-View-ViewModel 的简写。相对于 MVC 的历史来讲,MVVM 是一个至关新的架构,MVVM 最先于 2005 年被微软的 WPF 和 Silverlight 的架构师 John Gossman 提出,而且应用在微软的软件开发中。当时 MVC 已经被提出了 20 多年了,可见二者出现的年代差异有多大。数据库
MVC框架若使用不当不可避免的会存在着Controller过于臃肿而且解耦不当的问题,所以不少人都会推崇MVVM,贬斥MVC,不过这篇文章笔者认为讲的仍是很不错的,值得思考。编程
Reactive
Reactive自己是异步数据流的一种实现方式,这里也便是所谓的FRP,即响应式函数编程。Reactive部分放在这边是由于它是一套从UI开始到后面响应中的完整的机制,以Android中的RxJava、Web中的RxJS以及iOS中的ReactiveCocoa为典型表明。缓存
Core:框架底层原理分析
此部分主要包含对于框架的底层原理分析,譬如Android领域的AOSP的源代码分析,各类各样的什么底层通讯框架等等的分析。网络
Language:框架经常使用语言
Objective-C
Swift
笔者看过的语法特性最早进齐全的语言之一,足以玩上好多天。架构
Dart
Java
Network(网络)
Socket
HttpClient
以okHttp(Android)、Volley、AFNetworking(iOS)为例。并发
Request Manage(请求管理)
Parallel Request(并发请求)
Storage(存储)
DataBase(数据库)
CoreData
这是iOS提供的相似于SQLite的存储方式。mvc
SQLite
Realm
File(文件)
Props(配置文件)
Resources(资源文件)
Cache(缓存)
UserDefaults(iOS),SharedPreference(Android),localStorage(Web)
SysProc(系统与进程)
Components Communication(组件通讯)
Notification(iOS)、postMessage(Web)、Handler(Android)
Concurrence
Thread(线程)
GCD/NSOperation(iOS)、AsyncTask(Android)
Promise
PromiseKit(iOS)
EventBus
Otto(Android)
Service(服务)
RPC(远程与本地调用)
NDK(Android)
TestRelease(测试与打包发布)
Debug(调试与记录)
Log(日志)
Monitor(线程与Crash监控)
Release(发布)
Signature(Android)
Ad-hoc/AppStore(iOS)
Confusion(混淆与加密)
Test
Unit Test(单元测试)
UI Test(界面测试)
External Test(第三方测试)
Optimization(优化)
Plugin & Dynamic Patch(插件化与动态更新)
譬如如今Android领域很火的多APK联合发布以及部分更新等功能。
APM(应用状态追踪与评分等)
Rating(在AppStore或者各大应用市场中的应用评分)
UI
用户交互与界面部分是最经常使用也是最复杂的一个部分。
UI.md(界面呈现的基本原理)
Screen & Coordinate(屏幕与坐标系)
Layout(布局)
AutoLayout(iOS)
AbsoluteLayout(Android)
Responsive(响应式)
Basic View(基本的视图提供与控制)
UIView/UIViewController(iOS)
Activity(Android)
iFrame(Web)
Container(常见的做为容器的View/Panel)
ScrollView(滚动视图容器)
CoordinatorLayout(Android)
RefreshLayout:提供下拉刷新或者上拉加载的Layout
NavigationView(导航视图)
TabBarView(页卡视图)
Router(页面路由)
Interaction(用户交互)
Event&Gesture(事件与手势操做)
Event Bind(事件监听与绑定)
Event Dispatcher(事件捕获传递与分发)
Gesture Recognize(手势监听与识别)
Multiple Touch(多点触控)
Drag&Drop(拖拽)
Scroll(滚动)
Zoom(缩放)
Shake(摇晃)
Media(音频视频播放、录制与相关操做)
Camera(照相机)
Audio
音频的录制与播放,就像iOS与Android下的语音交互,须要统一转码成AMR或者其余格式。
Video
Sensor(传感器,包括陀螺仪、重力传感器)
HealthKit(iOS)
Notification(通知栏,包括本地通知与远程推送)
Widgets(插件)
Dialog(对话框)
Modal Dialog(模态对话框)
譬如iDialog(Web)
Popup:弹出与提示层
HUD
Tooltip
Popover:覆盖层
Empty/Error 空或者错误提示
Action Sheet:底部弹出操做栏
Indicator(指示器)
Introduction(介绍或者引导页)
Splash(闪屏)
Guide/Tour(导引与教程)
DateTimer(时间显示)
TimeLine(时间轴效果)
CountDown(倒计数以及倒计时效果)
ProgressBar(进度条)
Text(文本显示以及效果)
Rich Text(富文本)
TypeWriter:打字机效果
文字的切入切出效果
Label(标签)
Tags(标签或者等效的流列表)
Badge(徽标数)
Loading(加载效果)
Picker(输入器)
Button(按钮)
FAB(浮动按钮、回到顶部按钮)
Menu(菜单)
Drawer:抽屉菜单(Android)
Toolbar/StatusBar(状态栏或者工具栏)
Select(选择器)
Segment(分段输入器)
Ratio Button
Check
Text(文本输入,泛指全部用户的自主输入的内容)
TableGrid(网格与表单)
List(列表)
ListView(Android)、UITableView(iOS)
ListView-Animation
Grid(网格)
UICollectionView(iOS)、RecycleView(Android)
CardView(卡片式)
Gallery(画廊)
ImageView(图片加载、呈现以及处理)
LazyLoad(图片懒加载)
Filter(图片滤镜)
Label(图片标签)
Sticker(图片贴纸)
Crop(图片裁剪与美化)
PhotoBrowser(图片浏览)
album(相册)
Carousel(图片轮播)
Waterfall(瀑布流方式)
LightBox(图片点击放大)
WebView
Native Interaction(本地交互)
DVisual(绘图以及数据可视化)
Graphics(基本的绘图相关)
Color(颜色与取色)
Style&Theme(样式与主题)
Filter(过滤/滤镜)
这里的View指的是对于通用的View的效果。
Chart(图表相关)
Map(地图相关)
Barcode(二维码以及条形码相关)
Animation(动画与变换)
View Transition(基本视图的经常使用切换)
Animation Framework(动画构造库)
android控件的动画分为三种,property animation,tween animation,frame animation。可是由于在Web和iOS中分类不一样,所以不作详细分类。
KeyFrame(帧动画)
Animation Collection(常见动画汇总)