Git Product home page Git Product logo

android-jetpack-demo's Introduction

android-jetpack-demo

🔥Android-Jetpack-Demo

jetpack apache2.0 Gitter API Build Status SonarCloud codebeat badge GitHub repo size GitHub code size in bytes GitHub Release Date GitHub language count GitHub top language version GitHub last commit GitHub commit activity GitHub All Releases PRs Welcome Average time to resolve an issue Percentage of issues still open GitHub search hit counter HitCount

目录

一、项目简介

近期一直忙于公司项目,github更新缓慢,稍后会将项目实践中的问题沉淀总结一下,期待各位斧正~

Android-Jetpack-Demo 是一个简单的、集成当前Google主流Android技术的示例Demo,旨在帮助有需要的初级开发者,快速上手Android新技术、新架构。主要使用livedatalifecyclepagingroomnavigationworkmanagerrxjavakotlindagger2以及viewmodelMVVM简单架构。

代码中都有详细的注释,主要操作演示关注logcat的日志输出

二、更新日志

  • v1.1.0(2019年6月27日)
    • 更新AndroidStudio以及Gradle编译版本
    • 更新jetpackkotlin版本为当前最新
    • 压缩存档,以备模块化版本
    • kotlin初级语法的基础博文
  • v1.0.0(2018年11月14日)
    • 实现jetpack组件的初级基础用法的演示
    • dagger2的基础用法演示
    • kotlin初级语法的整理注释
    • databinding的基础用法
    • AAC的初级使用

三、Sample示例

下载体验apk或者手机扫描二维码下载Demoapk

扫描下载

四、项目组成1

项目主要简单的演示一些android技术与框架库的入门使用,RxJava操作符、Kotlin基本语法,以及JetPack的组件的简单使用。

  • Android Architecture Components
  • RxJava
  • Kotlin
  • Dagger2
  • Jetpack
    • lifecycle
    • livedata
    • databinding
    • navigation
    • paging
    • room
    • workmanager

五、规划

  • 基础使用入门的代码演示
  • 进阶技术&架构的演示
  • 对应代码的详细博文
  • 其他前沿技术链接

六、示例内容(部分)

databindinglifecyclelogcat

  • Kotlin语法及部分博文Kotlin
package org.zhiwei.jetpack.kotlin

/**
 * Kotlin基础语法(一),变量/常量/注释,基础数据类型
 * Author: zhiwei.
 * Github: https://github.com/zhiwei1990
 * Date: 2019/3/17,19:25.
 * You never know what you can do until you try !
 */

//<editor-folder desc="kotlin 变量/常量的 类中定义">

/*
Kotlin中的单行、多行、文档注释与Java的注释无区别。
唯一不同的是在kotlin的注释中,多行/文档 注释内,可以且套多行注释。
/*
这个就是多行注释中的多行注释
 */
 * 要是在Java中就会报错了。但是他们都能在多行注释中嵌套单行注释
 */
class KotlinSyntax01 {

    //类属性的常量/变量的声明及初始化,大体和顶级toplevel中的声明,差不多。
    var cA: Int = 10
    var cB = 11
    val cC = 3.1415926
    lateinit var cS: String//不可空
    private var cE: String? = null//声明可空,则需要?
    //kotlin中class、var、function等默认修饰符不写,就是public,另有 protected、internal、private,类似于Java
    //使用by lazy延迟初始化,则必须是val修饰,不可变,引用类型,基础类型不能延迟初始化。涉及到栈 堆
    val list: Array<String> by lazy { arrayOf("cdd", "ddd", "dddd", "ddwecd") }

    //init 为kotlin中class文件实例化必然调用的函数,不论构造函数有几个,都会调用init的
    init {
        cE = "null string"
    }

    //伴生对象,每个类都会有自己个一个伴生对象,不论它实例化多少个对象,这个object对当前类可理解为单例,静态
    companion object {
        const val PI = 3.1415926
    }
}

//</editor-folder>


//<editor-folder desc="kotlin 变量/常量的 Top Level中定义,也就是kt文件根结点定义">


//以下的变量/常量声明,是在kt文件的顶级节点下,根据public,private等修饰权限,对于整个module是有效的。所以
//这里的topLevel中定义的public的变量,在其他kotlin文件中,顶级位置,就不能再次定义同名变量,会冲突。
var a: Int = 7//变量声明变量的标准格式 var name:type = xxx 其中xxx表示直接赋值或者实例化对象
var b = 6//自动推到数据类型,如 6 推断为Int,而 6.0则推断为Double

//kotlin中一切皆对象形式,没有Java中的那种基础数据类型。变量的声明必须初始化,要么null,要么延迟初始化,而且null的对象和非空对象,声明也不一样。
var s1: String? = null
var s2: String? = "abc"//类型后加个?表示这个变量可以为null,见36行
var s3: String = "abc"//上两个还可以s1=null,s2=null,但是s3是不可以的,因为类型是String,而不是String?
lateinit var d: String//如果想要延迟初始化,可以用lateinit关键字修饰,但是?与lateinit不能共用
val str: String by lazy { "sss val str" }//lazy 为高阶函数,延迟初始化,by连接词,但是不能与lateinit共用,且必须是val类型。
val ee: Int = 900//val表示不可变量

fun Test() {
    d = "dddf"//延迟初始化的
//        ee = 3//不可变量,常量,都是不能修改的。
//        s3 = null//这里s3=null的话,编译就会报错
    //局部变量,不可变量的声明
    val sd = "ss 20010"
    var ssa = 10080

}

//Java中不允许在类外定义常量,变量之类的,但是kotlin中可以。Java中一个.java文件只能又一个public的类,但是kotlin中可以有多个。
val lenggth: Int = 100//val 表示不可变量,可以为顶级,类成员,局部不变量。
const val PI: Double =
    3.1415926//const 修饰的val,表示常量,必须在top level或者companion object中声明,不能作为普通的类成员常量。其中单例类可以理解为伴生类就是自身的一个kotlin的类
//by lazy 延迟实例化,一个对象只会执行依次初始化
val ccc: String by lazy { "fdf" }

//object  可以理解为一个单例类
object Single {
    const val sP = 3.1415926
}
//</editor-folder>

更多详情,请下载代码,内有详细注释,鉴于本人才学有限,若有不足之处,请大神不吝赐教

七、关于作者 jianshugithubcsdn

作者本人只是一个,就职于某知名(@_@ 有名字的)互联网公司的,技术小白一枚,对于编程有着某种兴趣和热爱,然技术确实渣渣,好读书、不求甚解~~

人之为学有难易乎、为之,则难者亦易矣;不为,则易者亦难矣。

倘若本项目对你有一丝丝的帮助和价值,烦请给个star,或者有什么好的建议或意见,也可以发个issues,谢谢!:happy:

Github starsGithub followersGithub issues

  • License
Copyright 2019 zhiwei.org

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

	http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Footnotes

  1. 作者项目开发环境为AndroidStudio 3.4.1gradle 5.1.1Jdk8Windows10 2

android-jetpack-demo's People

Contributors

iorchid avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.