獨立開發者,做app選用什麼技術棧合適?

JIDIJI


看到這個問題很興奮,我是利用業餘時間開發APP的,算是半個獨立開發者,這麼說來我們屬於半個同行吧!

下面我結合自己的經驗說一說這個技術選型,不足之處,歡迎留言交流

獨立開發者的定義

首先我們得搞清楚獨立開發者是什麼意思。

有人覺得獨立開發者,爽啊,不用定鬧鐘,也不用出去,在家躺著辦公,還灰常自由,沒人管著。其實這只是表面。

獨立開發者:能夠獨立完成從需求評估到原型設計,再到獨立開發上線交付軟件!

下面是我理解的獨立開發者:

1.業務能力

獨立開發對能力要求非常之高,沒有一個好的業務能力,對自己是一種煎熬,每天為了實現需求,嘗試各種實現方案,即費時費力還消磨耐心與信心;對客戶也是一種不負責,軟件的健壯性不夠,還有可能會導致任務超時。


2.學習能力

對於獨立開發者來說,不能守著一畝三分地,也要向外發展。比如APP開發,你只做APP端,那活會越來越少。比如近幾年隨著小程序的流行,開發小程序的單子暴增。我身邊就有些人,去研究小程序開發文檔,然後一個月之後就開始接單了,我也學習了下,有JS基礎或者Vue可以輕鬆上手。所以,作為獨立開發者,你要比在公司上班更加註重新技術的學習和關注。


3.技術選型能力

這也是我們今天主要探討的,技術選型要求我們對各種技術有最基本的認識。

技術選型主要考慮的是業務需求和業務場景。

根據業務需求,我們就能確定開發方案,從而進行選型。比如改需求會用到很多原生的功能,那你可能就不能使用混合框架開發了。

根據業務場景,比如該業務只需支持web端和小程序端,那我們就直接使用混合開發框架或者web框架。

對於IT行業來說,成為獨立開發者有天然的優勢!

盤點開發APP的各種技術棧

開發APP的技術棧類型分為三種:Native App 、Web App、Hybird App;.

  • Native App(原生開發)

原生開發在軟件運行效率和用戶體驗上是最好的,能直接訪問原生各種功能,給予開發者很大的便利。但是缺點也很明顯,開發效率上大打折扣,而且維護成本太高。

原生開發還需做大量的適配工作,尤其是安卓。

所以原生開發除非業務強制要求,否則是絕對不會使用的。

原生開發技術:安卓使用java或者kotlin,ios使用OC或者swift。


  • Web App(web開發)

使用web框架進行開發,利用原生的webview進行加載運行。這類技術優劣勢與原生開發有些相反,web開維護成本比較低,幾乎一套代碼各端都能運行。但對網絡環境和渲染引擎要求之高。

雖然有很多針對web優化的方案,比如簡化不重要的動畫/動效、簡化複雜的圖形文字樣式、減少頁面渲染的頻率和次數等等,但是仍然達不到用戶體驗的要求,所以在開發時不能隨心所欲,間接的導致開發效率降低。

web開發技術棧:JS、Vue、AngularJS等;


  • Hybird App(混合開發)

目前大多數公司都是採用的這種形式開發app,既能保證一定的用戶體驗,也能提高開發效率,降低維護成本。我覺得這種方式對獨立開發者很友好,如果沒有特殊要求,我一般會優先使用uni-app進行開發,當然這需要你對uni-app相當瞭解,而且具有一定的填坑能力!

我回答過一篇uni-app開發的優劣點,感興趣的可以去看看

混合開發技術棧:React Native、Cordova、weex、uni-app等;

下面提供張混合框架對比圖,方便大家瞭解:


這裡有必要提下flutter,這是谷歌開發的一款移動UI框架,屬於跨平臺性質,目前能跨移動端和web端,PC桌面端已經有開發預覽版了,而且谷歌的另一款操作系統Fuchsia,支持的UI開發框架就是flutter。作為app獨立開發者,這一個框架得深入瞭解下。

並且現在flutter生態逐漸建起來了,很多flutter開發框架或者工具類已經很多了。


如何進行技術選型

上文說過,通過業務需求和業務場景進行技術選型,這是客觀因素。

最終的技術確定,還是得我們自己熟練的,有把握的。

我們在開發時,首要目前是按時完成,寧願犧牲一點性能。

這裡我分享一個小案例:

我曾經接到過一個APP項目,其中有個要求是將一個web頁面仿製到APP裡面,當時我不太會web,所以就沒有考慮使用web語言去開發,而是使用原生去實現。

而且後面客戶又要求頁面的內容要與別人的保持一致,哎,現在想起這個要求,心理還是mmp。

那客戶是上帝,有要求就要去實現。我記得當時是用Jsoup庫,將web頁面解析elements,然後再一行行去解析內容,填充到原生界面。

後來學了JS才知道,那個頁面用JS實現界面和動畫效果是非常容易的。

而且當時完全可以將別人的web頁面嵌入到APP裡面來完成需求,只怪當時太年輕了。

分享這個案例,主要是想說,選自己有把握的技術,即使麻煩一點。其次也希望大夥重視和客戶打交道的能力。

總結

當前互聯網環境下,移動端和前端的界限已經很模糊,並且還有各種小程序的攪局,對於獨立開發者來說,要求更高了。對於開發APP技術選型而言,只選最合適的技術棧!在沒想清楚之前,千萬別急著開發。每個人的技術棧會有所不同,儘量結合業務和自身經驗去進行選擇。


孟子說:“魚與熊掌不可兼得”,我們在選擇時亦是如此!



分享到:


相關文章: