獨立開發者,做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技術選型而言,只選最合適的技術棧!在沒想清楚之前,千萬別急著開發。每個人的技術棧會有所不同,儘量結合業務和自身經驗去進行選擇。


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



非著名攻城獅


一般是APP開發,不太涉及硬件的話,建議混合開發框架,uniapp、ionic、react native等,開發一套通吃Android和iOS平臺。

如果硬件調用多,要求性能的話,建議原生Android、iOS開發,這樣要求比較高,個人的話不推薦。




閉著眼睛切土豆


很高興回答獨立開發者,做app選用什麼技術棧合適?這個問題,希望我的回答對您有所幫助!我覺得選擇何種技術棧取決於您產品的設計目標。例如,跨平臺方法對於初創公司來說會是一個很好的解決方案,而原生開發適合構建具有出色性能的複雜移動應用。

我覺得選擇合適的技術棧是移動應用開發領域中最關鍵的一步。你選擇的技術棧將為你開發的移動應用提供基本的功能,可擴展和可維護性。既然技術棧那麼重要,我們該為應用開發選擇哪種技術棧呢?

原生開發

現如今最常見的開發方法就是原生應用開發。值得注意的是Android和IOS的原生開發技術各有不同。原生應用的用戶體驗很好,而且有較高的安全級別。基於原生方法開發的應用響應迅速,性能出色。但是Android和IOS原生開發可能帶來高昂的成本和漫長的開發週期,你可能要聘請更多開發人員。

Android 技術棧

Android 技術棧可以使用java或者kotlin編程語言,最佳開發環境是Android Studio

iOS技術棧

iOS的原生應用開發使用Objective C 或 Swift編程語言,開發環境是 APP Xcode

原生開發的優點:出色的用戶體驗,完整的設備集成,響應迅速,安全等優勢

原生開發的缺點:只支持一個平臺,開發成本昂貴,需要僱傭多個開發人員。開發週期長

混合開發

什麼是混合開發呢?簡單的理解就是套殼打包。它是包裝在原生移動容器內的網頁。這些功能與網站類似,混合開發的一個好處就是單個應用舊可以用於Android,iOS,Windows多種平臺。

混合開發易於構建和維護。而且可以節約成本,因為不管是Android平臺還是iOS平臺,您只要構建一個應用就夠了。但是缺點就是沒有原生的體驗好

編程語言:HTML5,CSS,JavaScript

框架:Ionic和Apache Cordova

混合開發的優勢:支持多平臺,開發成本低,無需僱用額外的開發人員,開發週期短,易於構建和維護,較好的用戶體驗

混合開發的缺點:安全性能低,較慢的界面,缺乏原生功能,難以訪問設備硬件和操作系統的專屬功能

跨平臺開發

用於開發跨平臺應用的技術包括:React Native框架和JavaScript/TypeScript編程語言

跨平臺開發的優勢:開發成本低,代碼可複用,支持所有平臺

跨平臺開發的缺點:用戶體驗不是很好,安全性差,只支持有限的設備,缺乏靈活性。

移動平臺的web應用開發

我建議使用Angular/Ionic框架和HTML,CSS,JavaScript編程語言

移動平臺的web應用開發的優勢:低成本,高度安全,短開發週期,較好的用戶體驗,出色的性能,支持所有平臺,響應速度快

移動平臺的web應用開發的劣勢:耗電快,並非所有的設備都支持完整的PWA功能

總結:

上面我介紹了一些移動應用APP技術棧,簡單介紹了各個技術棧的優劣勢,至於實戰中具體選什麼技術棧,要根據您自己的項目來決定。


胖子李愛互聯網


其實做獨立開發者,如果不是出於純興趣,建議最好是做iOS平臺,付費意願最強,盈利能力最好,當然隨之相對的門檻也會略微高一些

做iOS的話推薦swiftUI入手做前端,fastapi或者BaaS如bmob等做後端


貝塔Theta


如果對前端性能要求不是很苛刻,我會選c#作為開發語言,app 用xamarin 或者unity,後端用.net core 如果還需要後臺web管理,前端我就換成flutter,如果還需要上小程序,我就換成uniapp+typescript!如果性能要求很苛刻,前端原生,後端隨意!


2清風


PHP+react native 後端用fastadmin tp5 搞API


哦阿膠


flutter+uniapp+go,flutter做app,uniapp做h5喝小程序,go做後端。


分享到:


相關文章: