-
1 # 胖哥科技圈
-
2 # 非著名攻城獅
看到這個問題很興奮,我是利用業餘時間開發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開發的優劣點,感興趣的可以去看看https://www.wukong.com/question/6799611033540362499/?origin_source=user_profile_answer_tab混合開發技術棧: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技術選型而言,只選最合適的技術棧!在沒想清楚之前,千萬別急著開發。每個人的技術棧會有所不同,儘量結合業務和自身經驗去進行選擇。
孟子說:“魚與熊掌不可兼得”,我們在選擇時亦是如此!
-
3 # 2清風
如果對前端效能要求不是很苛刻,我會選c#作為開發語言,app 用xamarin 或者unity,後端用.net core 如果還需要後臺web管理,前端我就換成flutter,如果還需要上小程式,我就換成uniapp+typescript!如果效能要求很苛刻,前端原生,後端隨意!
-
4 # 貝塔Theta
其實做獨立開發者,如果不是出於純興趣,建議最好是做iOS平臺,付費意願最強,盈利能力最好,當然隨之相對的門檻也會略微高一些
做iOS的話推薦swiftUI入手做前端,fastapi或者BaaS如bmob等做後端
-
5 # 逆著書本的光
一般是APP開發,不太涉及硬體的話,建議混合開發框架,uniapp、ionic、react native等,開發一套通吃Android和iOS平臺。
如果硬體呼叫多,要求效能的話,建議原生Android、iOS開發,這樣要求比較高,個人的話不推薦。
回覆列表
現如今最常見的開發方法就是原生應用開發。值得注意的是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技術棧,簡單介紹了各個技術棧的優劣勢,至於實戰中具體選什麼技術棧,要根據您自己的專案來決定。