成为一个独立应用开发者

ChouCong ... 2020-07-30 编程
  • TypeScript
  • 前端
大约 10 分钟

#

# 梦的起源

很多人都是因为想制作自己的软件和游戏,才想要入行做程序员的,如果你也是 可以扣个1,在国内很多独立开发者制作的应用小而美,比如纯纯写作、 钱迹,最重要的能够带来一定的收入,甚至足够支撑你实现自由职业。

今天的视频就和大家探讨一下制作独立App的事情,不限于技术和市场,耐心听完肯定会有收获

我这个年龄很多人的第一款手机都是诺基亚,我也不例外,具体机型我也记不清了,但是这个手机内置了塞班s40平台,内存很小,只能安装几个拓展软件,每个月移动30M的流量,玩的不亦乐乎

当时很多人将手机能够安装拓展软件定义为智能机,这个不重要,重要的是很多软件的启动页面上都有一杯小咖啡,后来我才知道这是 JavaME,虽然受制于内存大小和性能限制,但是丝毫不影响当时的手机软件非常丰富

#

真的接触到智能机是一个暑假,我哥淘汰了一个索尼爱立信的r800i手机给我,我很幸运,人生中的第一款智能机就如此优秀,这是一款pspgo外观的安卓手机,当时还是2.3.4的系统,当然这都是题外话,感兴趣的话我可以后面再继续分享

#

游戏没有玩多少,但是我对编程的爱好正是从这里萌芽,当时很多论坛里面,小工具、小插件、修改UI都是最火热的话题,当时我就暗暗下决心,长大了一定要当程序员

移动端开发最火热那几年,市场自由,很多创业者拿着一个ppt忽悠一笔投资就做去做app了,还有很多程序员通过快速复制App,简单修改代码,比如 五子棋、拼图、电池保护大师这些软件,快速占领用户的手机,这些应用制作粗糙,夹杂大量广告,甚至要求你下载应用存够积分才能解锁永久使用,这让他们实现了快速敛财

# 独立开发的技术路线

如今我已经是一名码农,但是很可惜没有从事移动App的开发,其实我大一的时候简单学过原生Android的开发,但是很快就放弃了,转而投入Javaweb的学习中,其原因无非就是原生开发行情不行,人才内卷,要求过高,现在想入行的朋友需要谨慎考虑

但是作为兴趣是很不错的,现在情况也很好,酷安、少数派、最美应用上面你可以找到很多小而美的独立开发者设计开发的app,很多为了实现制作app的梦想也会去自学编程,我也在坚持的道路中,先给大家分享一下就现在而言你想实现独立开发app可以有哪些路子,注意本期不是学习路线和资源分享,后面会专门出这个视频

首先你需要知道这一点,目前移动平台主要是Android和Ios,不同平台的程序是需要分别开发的

# 原生

如果你想要制作小而美的应用,就必须考虑软件的体积大小、性能和用户体验,所以优先开发原生程序

  • 在Android端你可以学习Java和kotlin知识,更底层的你需要学习c/c++来完成jni开发,使用Androidstudio或者更老的eclipse来开发程序,甚至你可以在手机上使用Aide来完成程序的开发,现如今Androidx和jetpack统一了很多的开发规范,让你学习起来更加的明确
  • 在Ios端你可以学习Swift和Objective-C,使用Xcode来进行开发程序

# 跨平台

如果你想追求开发速度、节约学习成本或者想开发一套程序多个平台同时运行,你可以使用跨平台技术,但是你需要牺牲掉部分性能和体验,并且可能会遇到很多无法解决的bug

跨平台开发的实现方式其实很好理解,可以将同样的代码转化为不同平台的需要的页面代码,也可以将应用构建成网页然后使用系统自带的浏览器内核,使用浏览器中渲染这个网页;还有的是自己制作渲染器,在不同平台制作渲染器,然后将代码运行到这个渲染器中,就类似游戏引擎。总的来说应用开发者只需关注业务的具体实现就行了、

不论什么跨平台框架,如果需要用到手机的功能,比如扫码、蓝牙、应用分享的时候,都是需要调用 native原生接口的,如果你只会跨平台的技术,在这些地方遇到问题你几乎是无法解决的,更重要的是 ios 对跨平台应用的审核是十分严格的,ios有可能会突然禁止你正在使用的跨平台技术

下面列举一些跨平台方案,看看有没有你会的技术呢?

  • Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台,使用flutter你需要学习dart语言,闲鱼就是使用的flutter
  • Weex 是JavaScript来开发高性能原生应用的框架,淘宝系很多应用都是使用weex,比如飞猪,使用weex你需要学习前端基础知识和vue.js框架
  • React Native让你只使用JavaScript也能编写移动应用,使用它你需要学习前端基础知识和react框架
  • Taro 是一个多端统一开发的解决方案,能同时开发小程序平台和react native程序,使用它你需要学习前端和react框架
  • uni-app 是一个使用 Vue.js 开发应用的框架,开发者编写一套代码,可发布到iOS、Android、H5多个平台,使用uniapp你需要学习前端的基础知识和vue.js框架
  • 其他的还有Cordova、Ionic 这里不再多说可以自行了解 #

# 混编开发

更多的时候原生和跨平台会一起使用,可以称为混编开发,混编开发使用原生程序来搭建骨架,然后可以使用跨平台技术来增量开发,目前市面上的很多大应用都是这个开发模式,你甚至可以留一些接口在外面,让别人在你的平台开发拓展应用,比如微信小程序、QQ小程序

# 服务端

虽然很大一部分独立应用并不需要服务端,只需要在应用内部就能够实现效果,但是你仍然需要学习服务端技术,用来实现复杂的效果、维护会员状态和处理跨端数据同步等问题,如果你单纯的在应用里面控制会员状态,你的应用很容易被破解

如果你是Android原生开发者,你可以继续学习Javaweb的知识用来搭建服务端,如果是使用JavaScript跨平台框架的开发者,你可以继续学习 node.js的知识,如果是使用其他技术的朋友 php和node 都是快速学习的选择

现如今有很多的serverless平台,你可以将你的服务端部署到第三方平台,减少购买服务器、搭建环境和运维的成本

# 设计程序的出发点

# 用户体验

我更推荐独立开发者学习原生开发,因为时间和成本的问题,制作小而美的应用更为实际,当然也有一些制作精良的小程序也能获得原生的使用体验

就像独立游戏开发需要学习音乐、美工等知识一样,独立开发App程序,也需要你掌握UI设计,最好你还有设计和美学功底,这正是我所欠缺的,当你有思路去设计一个应用的时候,一定要先考虑它的存在是否合理,能不能解决用户的某个痛点,这决定了你的应用是否会被用户留存在手机里,毕竟现在越来越多的人都转向使用网页和小程序,不愿意下载更多的App

我观察过很多火热的独立应用,发现它们都具有 体积小、流畅、美观、实用、有创意这几个特点,如果你想要制作独立应用,可以考虑一下这几个点

Android和ios的风格是不太一样的,很多应用厂商为了国人的使用体验,会将两个平台的界面设计的一样,独立开发者你完全可以自由发挥,体验不同平台的特色;但是你要注意根据你面向的用户群体,完成对应的设计,比如面向儿童和老年人,你就需要设计的更容易理解和更安全

#

# 上架

在国内移动开发最火热的那几年,不仅开发岗位多,报酬高;最重要的还是市场自由,独立开发者的App应用可以轻松的上架各大应用商店,但是现在不同了,很多的应用商店需要你有企业开发者资质、软件著作权、平台保证函,有些特别应用还要求你具备 网络文化经营许可证 互联网金融牌照 网络出版服务许可等文件

总的来说,独立开发者想要依靠自己的身份将应用上架到各大平台是困难重重,现在主要的解决方案就是找第三方企业给你代上架,或者你自己注册个体工商户、企业

你要注意,如果你想制作独立应用,你最好不要涉及 社交、棋牌、灰色产业这些范围

# 成本

一个app的成本不仅是开发和学习成本,后期你还需要维护和升级,特别是遇到平台大更新的时候,并且你要随时注意应用市场的规则变更,稍不注意,你的应用会被系统下架

特别是Android手机,版本更新快,但是市场的Android版本跨度大,你需要兼容很多版本的系统,你可能还要给不同的刘海屏和水滴屏手机做兼容处理

开发阶段过后,应用的上架和宣传也是非常麻烦和重要的部分,特别是宣传,即使你的是千里马,还得有伯乐才行,现在市场应用这么多,想要脱颖而出完全靠质量是不行的,还要一些手段,如果你穷,就只能辛苦一下自己到多个平台自推,活跃,积累粉丝;如果你有钱,完全可以找市场竞价和平台付费推广

# end

总的来说就目前而言,如果你没有什么好的点子,我建议还是不要贸然走全职独立开发这一步,当你的应用有一定用户量的时候再考虑,可以先在公司磨练一下,积累点经验,利用业余时间开发

好的今天的内容就到这里了,对你有帮助的话可以给我一个三连哦!