回覆列表
  • 1 # 胖哥科技圈

    原生開發

    現如今最常見的開發方法就是原生應用開發。值得注意的是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技術棧,簡單介紹了各個技術棧的優劣勢,至於實戰中具體選什麼技術棧,要根據您自己的專案來決定。

  • 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開發,這樣要求比較高,個人的話不推薦。

  • 中秋節和大豐收的關聯?
  • 離婚後夫妻成為仇人就是對的?還是當朋友和平共處?