Kotlin開發(fā)安卓應(yīng)用
- Kotlin基本語法
- Kotlin搭建安卓項(xiàng)目的項(xiàng)目清單
- Kotlin調(diào)用UIFramework
- Kotlin網(wǎng)絡(luò)層
- Kotlin開發(fā)中注意點(diǎn)
- Kotlin開發(fā)中現(xiàn)存在疑問點(diǎn)
Kotlin基本語法
語言都是相同的,kotlin需要學(xué)習(xí)的語法知識點(diǎn):
- 高階函數(shù)
- map ,flapMap
- lambda表達(dá)式
- ?:三目運(yùn)算符
- when表達(dá)式,另外格式的條件語句
- step 循環(huán)語句的步數(shù)
- until 循環(huán)的條件
- down to 循環(huán)倒序
- delegate -> by XXDelagete
- 單例
- 判空 -- swift很像
- 智能? ! -- swift很像
Kotlin搭建安卓項(xiàng)目的項(xiàng)目清單
app
- manifests
- 項(xiàng)目信息,包名,icon ,名稱,類似AppDelegate+plist
- java && kotlin
- Activity -- UIViewController
- class -- Object,Model
- res
- drawable
- layout -- customView.frame
- menu
- mipmap -- asset.image
- values -- Stuct,ColorManager ,StringManager ,StylesManager -- 主題配置
Gradle Scripts
- build.gradle 類似iOS Import.File,導(dǎo)入以來庫,文件
Kotlin調(diào)用UIframework
- Button UIButton
- ImageButton
- FloatingActionButton
- ToolBar
- checkBox 復(fù)選框
- ImageView UIImageView
- VideoView 視頻播放
- DatePicker UIPicker
- TimePicker UIPicker
- RadioButton 單選框
- CheckedTextView UILabel
- TextClock
- Spinner 下拉框,用于篩選位置
- ProgressBar 圓形進(jìn)度條
- ProgressBar(Hor) 水平進(jìn)度條
- SeekBar 水平拖拽條 UIProgress
- SeekBar(Discrete) 水平拖拽條但指示在上方
- RatingBar 星形狀Bar按鈕
- Switch UISwitch
- Space 適配使用,類似iOS中彈簧控件,但iOS中彈簧控件只用于底部toolBar
- QuickContactBadge 應(yīng)該是快速訪問通訊的一個(gè)組件,沒使用了解
- TextView UITextView
- Plain ,Password ,Password(Numberic) ,E-mail ,Phone ..etc..TextView分類,為那種類型的輸入條件限制
- RadioGroup 單選框組
- ListView UITableView
- GridView UICollectionView
- ScrollView 豎直方向滾動(dòng)
- ScrollView(Hor) 水平方向滑動(dòng) UIScrollView
- TabHost 頂部Tab欄
- SearchView UISearchVC
- WebView UIWebView
- ViewPager 應(yīng)該是分頁控制器類似ChildVC,沒試驗(yàn)
Kotlin網(wǎng)絡(luò)層
GJson一個(gè)框架解析json
目前只看過一個(gè)網(wǎng)絡(luò)層的例子,還不是那么清楚實(shí)現(xiàn)原理
異步請求api -> uiThread 主線程刷新
async()
{
val url: String = "https://www.baidu.com/"
//在子線程請求網(wǎng)絡(luò)數(shù)據(jù)
val result: String = Request(url).run()
//在主線程中更新ui
uiThread{
Log.i("MainActivity",result)
}
}
請求實(shí)現(xiàn)
class Request(val url: String)
{
//https://www.baidu.com/
//網(wǎng)絡(luò)請求運(yùn)行在子線程中
public fun run():String
{
val jsonString: String = URL(url).readText()
Log.i("Request",jsonString)
return jsonString
}
}