初識Android、iOS


Posted by John on 2020-12-05

Android App程式撰寫種類

  1. 最初的Java語言
  2. 現在官方語言的Kotlin語言
  3. 跨平台的Flutter框架(Dart語言)
  4. 最底層的C++,通常是使用在一些由C++編譯過來的庫,例如FFmpeg,後續也會有個文章介紹

Kotlin解決了Java許多冗長的程式碼,也因為Google使用Java導致產生了一些法律問題(Google、甲骨文史詩級版權訴訟案),讓Google將Kotlin轉為官方語言

Flutter框架是為了解決Android與iOS一次需要寫兩個語言的問題,但Flutter畢竟不是iOS原生的,在使用一些Libary上可能會有一些困難產生

Apple也出了一個SwiftUI框架,來與Flutter框架打對台,兩個框架都是輸入程式時,UI可以即時反應的

iOS App撰寫的方式

1.Objective-C(UIKit)
2.Swift(UIKit、SwiftUI)

iOS在2020年iOS 14,出了最新的SwiftUI 2.0,並將UIKit撰寫方式棄用了,iOS漸漸的將SwiftUI作為主流發展

SwiftUI與UIKit撰寫方式差異極大,SwiftUI 1.0剛出的時候,因為有些撰寫上還有許多不方便,導致當時很多人都還在觀望是否要切入SwiftUI 1.0,這些不方便在SwiftUI 2.0慢慢的都改善了

Kotlin 與 Swift 語法相似的優勢

在撰寫Android或撰寫iOS時,若已經會Kotlin切入Swift會很容易上手,反之亦是如此
做個簡單的幾個語法範例

Kotlin 打印部分
var data: Int = 1 println("data ${data}")
Swift 打印部分
var data: Int = 1 print("data \(data)")

Kotlin 可變變數
var data: Int = 1
Swift 可變變數
var data: Int = 1

Kotlin 不可變變數
val data: Int = 1
Swift 不可變變數
let data: Int = 1

Android建議使用的Tools

Android Studio,在個方面的功能也比較多,每年Android都會出一個新版本,使用此Tools也會比較容易切入

iOS建議使用的Tools

XCode,在個方面的功能也比較多,每年Android都會出一個新版本,使用此Tools也會比較容易切入

Android 與 iOS 每年都會面對的問題

新版本的出世,每當一個新版本出來,權限、安全性、語法、功能都會有些變動,像以前Android可以不需要開位置權限,就可以讀取到WiFi的資訊,新版本必須要開啟才能讀取,iOS亦是如此

由於以前Android 大部分的Code都是使用Java,因此兩個之間的溝通變成很重要,這部分後續會有一個文章來介紹

iOS亦是如此,以前大部分的Code都是使用Objective-C,所以也會需要有一個橋接來溝通,後續也會有一個文章在介紹這部分

第三方庫的選擇

如果用途是在商業的話,在使用第三方庫要特別注意,否則將來會有很多版權問題發生,有些第三方庫如果有運用到,都要將自己的程式碼共享出來,在商業上基本上是不會用這些庫的,如果真得有有這些問題寧願自己寫,也不要冒這個風險

善用Git做版本管理

有些Code可能不會是一個人撰寫的,這時候版本管理會很方便,可以分成n個人,各別寫不同的Code,最後再統整在一起

還有就是可以做一些版本的歷史紀錄,如果中途不小心把程式改壞了,也可以馬上還原到上個版本,使用Git的好處很多,也有不少公司會要求使用它,之後會有一個章節介紹Git版本管理,以及我使用的Tools

軟體的發展與相容性

像Android、iOS每一年都會有一次重大更新,有時候會是改善以前的問題,有時候是棄用之前的東西,有時候是改規則,所以每次重大更新時,都要去看一下,要特別注意的是相容性

使用者的手機不可能新版本一出,馬上就去換手機、更新軟體,所以以前版本要可以用,新版本也要可以用,這時候會出現很多問題,這些問題通常在網路上陸續有人會提出解決方案,所以每一次重大更新,都需要去確認一下,自己撰寫的App在新版本上運作是否正常,也可以根據需求調整最低支援的版本

在最初撰寫軟體的時候,也要注意一下,尤其是Android,因為生產的廠商太多,有時候會發現某某廠商運作正常,某某廠商運作不正常,不同廠商有時候在App執行生命週期上,會有些差異,或者記憶體太小,因為寫法問題導致瘋狂釋放,或者重力感應器有些廠商沒有做歸零,但是在記憶體比較大的手機上卻不會發生這些問題,要減少問題發生,在設計架構上的時候,就要多注意


##Android #iOS #軟體 #簡介







Related Posts

python-helloWorld

python-helloWorld

ESlint 錯誤訊息紀錄

ESlint 錯誤訊息紀錄

Sass/SCSS 簡明入門教學

Sass/SCSS 簡明入門教學


Comments