開源專案——使用swift開發記事本APP

語言: CN / TW / HK

前端時間使用iOS技術編寫了一個記事本APP,github地址

ios_notepad

1.專案簡介

使用Swift編寫的IOS APP,除了常規記事本的增刪改查功能之外,加入了分組功能。

2.環境簡介

語言:Swift 5.4

UI框架:UIKit

包管理工具:CocoaPods

佈局框架:SnapKit 5.0.0

本地資料庫管理庫:GRDB.swift

3.專案截圖

4.程式碼邏輯簡述

新建資料庫管理類,編寫建立資料庫,建立分組資料表,在分組資料表進行增刪的方法。

新建首頁佈局檔案,資料為外部傳入,使用協議將點選事件傳遞給呼叫者。在ViewController中呼叫資料庫管理類,進行資料庫和資料表的初始化,當點選事件發生時呼叫資料庫管理類中的資料操作方法。

其餘頁面的邏輯與上述步驟一致。

5.技術準備

sudo gem install cocoapods pod init pod install

M1 mac安裝有問題

6.總結

編寫這個APP就是想鞏固一下自己最近學習的IOS開發相關知識,此APP參考了一本有些過時的IOS書籍,雖然書上的很多API和現在已經大不相同,不過隨著工作經驗的增長,自己也成長為一個有些經驗的端開發工程師,從最開始用JQuery,bootstrap寫網頁,到後面使用Angular,然後接觸到Flutter,到現在自學的Android和IOS,對端開發一些常見的步驟都有了自己的認識,比如路由管理,頁面佈局,工程架構(mvc,mvp,mvvm),這個APP就是通過協議將View層中的邏輯部分暴露出來,邏輯全部交給controller處理,實現頁面和邏輯的分層,網路請求,還有web一般不會用到但客戶端很常用的本地儲存,本地資料庫等等。雖說不同的端具體的API上可能有變化,不過大體的思路都一致,憑藉著這種思路和搜尋引擎,還有看文件的習慣,還是把這個APP完整的做出來了。

正式參加工作已經兩年了,從準備成為一名程式設計師到現在已經三年多了。從事程式設計工作以來,最讓我感到慶幸的是程式設計絕不是一項無聊的工作,計算機世界的浩瀚,讓普通人窮盡一生也只在一個細分的方向上探索到電腦科學的邊界。我喜歡這份工作,因為他能讓我的大腦不停的工作,讓我總是能思考。雖然自己對程式設計談不上多麼的狂熱,但是在工作和學習中還是能獲得一些樂趣,這份樂趣也就成了自己不斷學習的動力。

這兩年換了兩次工作,當一份工作和自己的目標發生衝突的時候,我就會重新找一份滿足自己要求的,我發現自己很討厭穩定,當一份工作沒有挑戰,成為機械式的重複之後,就會對這份工作喪失全部的熱情和興趣,失去興趣之後真是一天也不想在做了,只想儘快逃離。想起面試的時候HR問我你覺得你的穩定性怎麼樣,現在想來,是工作能多大程度激發我的興趣決定了我的穩定性。想想自己二十多年來,在學生時代一直都沒能有什麼成就,比較直觀的就是沒考一個好點的大學,現在想想自己對學校各個科目的興趣總是很短暫,失去興趣之後也就隨便學學就行了。唯一感興趣的是文學,可惜自己學的還是理科。

從事這份工作以來總是讓我感到理想和現實的分裂,總是覺得工作沒有和人生的終極目標發生聯絡很可惜。世界上哪有完美的事情呢,就算能從事理想中的工作,能不能滿足基本的生存需要都是未知數,當我意識到無產階級就是需要出賣自己的勞動力來換取生存條件的時候,我漸漸的可以接受這種分裂了。原來自己總想著三十歲就退休,逐漸瞭解實際情況後才發現勞動可能是一輩子的事情。勞動是光榮又偉大的,只是我有那麼點不喜歡。

兩年很快就過去了,雖然沒有做到完美,現在想來這兩年的時間我並沒有荒廢,雖然我不曾在兩年之前訂下過什麼目標,但我覺得我對現在的自己還是比較滿意的。其實一名程式設計師的成功標準是很難衡量的,工資高低?職位高低?技術水平?對開源社群的貢獻?對電腦科學的貢獻?每個人都有自己不同的答案,能做到讓自己滿意就極為難得了。

人生總是在追逐,在職業生涯上更是如此,有的時候對世俗意義上的成功不屑一顧,但大部分的時候還是朝著世俗意義上的成功努力,彷彿是在跟誰較勁,拼了命的證明自己,跟誰較勁呢?證明自己給誰看呢?這些問題或許都沒有答案,但也是這些問題給了我不斷前進的動力。

站在此刻,向著未來的人生望去,前面什麼也看不到,未來唯一可以確定的就是他的不確定性,不過我還是希望我以後的工作內容是真正的為社會做貢獻,幫助世界變的更好,最好能為祖國邁向共產主義貢獻一份力量。期望畢竟是期望,如果沒有那麼一個美妙的機會讓我達成這些目標,那我就想身體健康的多掙點錢。一份工作能不破壞我的健康,能讓我有尊嚴的活著,能讓我在工作之外的時間可以做自己想做的事情,幸甚至哉。

寫在末尾

Android 和 Flutter 端的工程不打算寫了,做同一種事情的工具掌握三種並沒有什麼意義,軟體開發核心還是基礎和流程,拒絕做API boy。