
前端時間使用Flutter,iOS,Android三種技術撰寫了三個相同功能的計算器APP,github地址,
ios_calculator
1.專案簡介
使用Swift撰寫的IOS APP,實作了計算器的常見功能,
2.環境簡介
語言:Swift 5.4
UI框架:UIKit
包管理工具:CocoaPods
布局框架:SnapKit 5.0.0
3.專案截圖
4.開發流程與代碼邏輯簡述
- 打開Xcode創建IOS APP專案,
- 引入包管理工具和框架,
- 撰寫布局類,繼承UIView,撰寫Button組件,繼承UIButton,
- 封裝計算邏輯工具類,
- 在ViewController中引入布局檔案,通過布局類中的按鈕點擊協議完成計算器的計算邏輯,
5.技術準備
-
Swift基礎語法
-
UIKit使用
-
SnapKit使用
-
CocoaPods使用
sudo gem install cocoapods pod init pod installM1 mac安裝有問題
-
Swift中的協議
6.總結
學習IOS開發也有一段時間了,學習途徑包括嗶哩嗶哩視頻教程,YouTube視頻教程,Apple官網檔案,閱讀相關書籍,因為擁有Flutter和Android的開發經驗,學習程序中沒有什么大的阻礙,唯一覺得不好的一點是中文社區的匱乏,面向初學者的文章和書籍都比較少,隨著IOS相關技術的破壞性更新,導致很多教程不適用,耽誤了不少時間,撰寫UI有拖拽storyboard和純代碼兩種方式,個人還是比較喜歡純代碼的方式,開發語言有Swift,objective-c,UI框架有UIkit和SwiftUI,選擇了資料比較多的SWift和UIkit學習,技術選擇的多樣性在最初也造成了一些困惑,因為精力有限,不可能全都學,后續使用IOS技術寫一些復雜點的APP,提升技術水平,
android_calculator
1.專案簡介
使用java撰寫的Android APP,實作了計算器的常見功能,
2.環境簡介
語言:java 1.8
依賴庫:詳見android_calculator/app/build.gradle下的dependencies
3.專案截圖
4.開發流程與代碼邏輯簡述
- 撰寫布局xml,使用
constraintlayout布局 activity中注冊控制元件,監聽點擊事件- 點擊=號時執行計算邏輯
5.技術準備
- java基礎語法
- 安卓開發官網
constraintlayout布局
6.總結
三種技術寫一個專案,感覺給自己挖了一大坑,本意是熟悉一下學習過的技術,可能最近作業和學習的狀態都有所下滑,感覺沒有什么動力了,
寫之前看了一下其他的開源專案,參考了一下布局,學習了constraintlayout布局,其實本來想用jetpack試一下,不過自己kotlin還沒學,而且學到太多也有點記不住,就放棄了,
可能需要歇一歇再繼續,
flutter_calculator
1.專案簡介
使用dart撰寫的Flutter APP,實作了計算器的常見功能,
2.環境簡介
語言:Dart 2.14
框架版本:Flutter stable, 2.0.6
3.專案截圖
4.開發流程與代碼邏輯簡述
- Gridview和Expanded實作布局
5.技術準備
- Dart語法
- FLutter基礎
6.總結
編程其實是一種思想的表達手段,某一天我突發奇想,想做一個什么樣的APP,基于這個想法就有了客戶端的頁面,也是基于這個想法有了后端的業務,編程只不過是實作這個想法的工具,編程和程式員,就像文字和作家,畫筆和畫家之間的關系,重要的不是實作想法的手段,重要的是心,一個充滿了想法的心靈才是最寶貴的,作家什么都不想寫,文字對他有什么用呢,畫家什么都不想畫,畫筆又有什么用呢,這樣才能準確的理解編程的作用,如果沒有一個改變世界的想法,google搜索和蘋果手機也都不會出現了,拉里佩奇或喬布斯代碼寫的多好都沒用,由此可見,互聯網行業大部分的行業都是為了想法在服務,不管是產品,運營,UI,都是為了讓想法變成現實,什么時候自己能成為不再為別人的想法服務的人,而是提出想法呢?有點跑題了,
android/iOS/flutter 三種技術寫同一種APP本意是為了熟悉一下近來學習的android和iOS,flutter算是添頭,寫一下玩一玩,不過通過這次專案的撰寫,讓我覺得其實很多的技術都是在做類似的事情,變化的只不過是API,用Icon,用RN,用FLutter,用Android,用IOS都可以寫出APP來,成為大前端,也就是掌握多種可以做同一個事情的技術,會一種和會多種只不過是誰記住了更多的API,
最近在做一個移動端即時通訊的需求,讀了一些技術博客,這些博客不是為了Flutter而寫,他講述的是客戶端和服務器端整個的處理即時通訊的流程,客戶端開啟連接,心跳檢測,創建本地資料庫,服務端接收到訊息再轉發到客戶端,等等,這讓我覺得在業務開發上重要的其實不是語言或者技術,而是這種整體的,解決問題的思路,思路才是靈魂,語言和框架只不過是實作這種思路的工具,
作業已經兩年了,感覺自己就是個API boy,掌握了很多的API,前端,客戶端,服務端都寫過,學過的語言都有七種了,以至于現在不是作業用到的技術,很多細節都想不起來了,可是這些API有多少是可以遷移的呢,過了幾年有了新的語言,新的框架,所謂的編程經驗也跟著清零,基于這種考慮,讓我想到去學習計算機基礎,學一學經久不衰的計算機科學,不能滿足于學習API,從技術投資的角度來講,肯定是希望自己學習的技術永遠不過時,現在來看只有計算機科學有這樣的特性,準備學一學試一試,當我認識到我可能會從事十幾年的計算機行業后,我覺得不能再為了面試而學習了,應該學一些真正的可以貫穿整個職業生涯的知識,
從資本的角度出發,不管跨平臺寫出來的APP有多爛,跨平臺還是提高了員工生產力,從我自己的角度出發,我覺得跨平臺也是一種很好的技術方案,本來都是做的類似的事情,何必要用那么多種語言,那么多種框架,當Flutter web正式版出了之后,我就放棄了JS技術堆疊的學習,學習多種技術做同一種東西在我看來毫無意義,即使FLutter不是終極方案,我覺得跨端是不會消失的,只要還有各種各樣的端存在,跨端技術就會存在,
我覺得一名好的跨端工程師不只是掌握跨端技術,能夠寫端上的應用,也應該熟悉端的特性,能夠解決對應端的特定問題,自己未來一年里,除去基礎知識的學習外,也會朝著這個目標前進,未來的一年內,也會尋找機會為開源社區做出貢獻,技術在我這里分兩種,一種是應該學的技術,所謂應該學的技術就是市場需要什么樣的技術人才,對應的就是就是應該學的技術,另一種是感興趣的技術,感興趣的技術就全憑自己的心意,想學點什么就學點什么,
這兩年來多半是在學應該學的技術,很多想做的事情,感興趣的技術都被排在后面了,現在想一想如果當初不是對Flutter產生了興趣,自己也不會在這兩年里取得這么大的進步,其實做正確的事情我只是全憑意志力在堅持,而做感興趣的東西會讓我感到快樂和興奮,生活已經夠艱難了,還是應該讓自己快樂一些,接下來一兩年的時間里,我決定多學習一些自己感興趣的知識,做自己真正想做的事情,做正確的事情,取得世俗意義上的成功,對自己來說毫無意義,做自己想做的事情,成為自己想成為的人,才是最有意義的事情,人生還長著呢,如果這一兩年發現做自己感興趣的東西完全行不通,到時候再調整方向也來得及,
我雖然希望一年后的自己成功,但我更希望一年后的自己快樂,人生一輩子都追求正確,雖然能有一個好的結果,但是也會錯過一些其他的風景,我決定去看看這些風景,
“我支持你,加油!”

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/316055.html
標籤:其他
