无忧家教APP—架构及安排(0)

未完待续

github

https://github.com/STUFelix/WorryFreeTutor

技术栈


Kotlin(include Kotlin support)

Kotlin的优势

  • 背景雄厚,未来应该较好: Kotlin是由JetBrains公司研发并开源,且在2017年 google I/O 上,google认定Kotlin为第一开发语言。
  • Interoperable:Leverage existing libraries for the JVM, Android, and the browser.
  • 安全: 可以轻松防止在java中常见的NullPointerException问题。
  • Concise: Drastically reduce the amount of boilerplate code.
  • 和Java百分百兼容: Kotlin、java可相互调用的代码和库,在一个项目中可以同时用Java和Kotlin来编写代码,且两者可以通过简单操作(如Android studio 上一个快捷键)完成相互转换。

项目组成员的学习方式

Kotlin官网: https://kotlinlang.org/docs/reference/
掘金Kotlin专题https://juejin.im/tag/Kotlin
简书Kotlin专题https://www.jianshu.com/c/98aaef9f5d2f


MVVM模式

google发布MVVM : DataBinding + ViewModel + LiveData+Livecycle
https://developer.android.com/topic/libraries/architecture/index.html

为什么选择

  • MVP模式存在一定的弊端:
    • V 与 P 存在一定的耦合度。 一旦V层某个UI元素更改,那么对应的接口,数据如何映射到UI,事件监听接口都需要转变,牵一发而动全身。
    • 复杂的业务会导致P层太大,依旧会出现代码臃肿问题(同MVC中的Activity,出现臃肿问题)
    • MVP是以UI为驱动的模型。(而MVVM是以数据为驱动的模型)
  • google 2015年推出DataBinding框架(其为构造MVVM的一个工具)

项目组成员的学习方式

MVVM
https://tech.meituan.com/2016/11/11/android-mvvm.html
https://github.com/xitu/gold-miner/blob/master/TODO%2Fapproaching-android-with-mvvm.md
DataBinding


UI设计

UI设计的原则

简单 清晰 一致性 熟悉感 层次感 高效(响应高效,操作高效) 人性

Android Material Design

为了解决Android平台的界面风格长期难以统一的问题,google在2014年Google I/O大会上重磅推出了一套全新的界面设计语言——Material Design(为什么能统一呢?因为以前的标准实在太丑,所以很多公司都自行设计)。后来为了解决开发者上手难问题,google在2015年Google I/O大会推出了一个Design Support库,将Material Design中最具有代表性的一些控件和效果进行了封装。
项目组成员的学习方式

Android Animation

主界面使用BottomNavigationBar+Fragment+ViewPage仿照主流APP。


Retrofit2 + Rxjava2 +Dagger2

为什么选择

项目组成员的学习方式


Fresco

为什么选择

项目组成员的学习方式


其他优化

代码规范:

阿里巴巴android开发手册.pdf
阿里巴巴Java开发手册v1.2.0.pdf

阿里云镜像仓库代替google官方依赖

解决Android Studio加载gradle慢的问题

  buildscript {
        repositories {
    //        mavenCentral()
    //        jcenter()
    //        google()
            maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
            maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
            maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
        }
        dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
    }
    allprojects {
        repositories {
    //        mavenCentral()
    //        jcenter()
    //        google()
            maven { url 'https://plugins.gradle.org/m2/' }
            maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
            maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
            maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
        }
    }

其他技术

Butterknife
https://www.jianshu.com/p/3678aafdabc7
RecycleView
设计模式与设计原则
https://www.jianshu.com/p/6e5eda3a51af
https://juejin.im/post/5a51ef536fb9a01c9a2692b2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容