独立开发者,做app选用什么技术栈合适?

JIDIJI


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


追风的蜗流


一般是APP开发,不太涉及硬件的话,建议混合开发框架,uniapp、ionic、react native等,开发一套通吃Android和iOS平台。

如果硬件调用多,要求性能的话,建议原生Android、iOS开发,这样要求比较高,个人的话不推荐。




闭着眼睛切土豆


看到这个问题很兴奋,我是利用业余时间开发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选用什么技术栈合适?这个问题,希望我的回答对您有所帮助!我觉得选择何种技术栈取决于您产品的设计目标。例如,跨平台方法对于初创公司来说会是一个很好的解决方案,而原生开发适合构建具有出色性能的复杂移动应用。

我觉得选择合适的技术栈是移动应用开发领域中最关键的一步。你选择的技术栈将为你开发的移动应用提供基本的功能,可扩展和可维护性。既然技术栈那么重要,我们该为应用开发选择哪种技术栈呢?

原生开发

现如今最常见的开发方法就是原生应用开发。值得注意的是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


分享到:


相關文章: