想开发一款安卓社交类的APP需要有哪些准备
推荐于2017-05-16 · 知道合伙人数码行家
知道合伙人数码行家
向TA提问 私信TA
A.UI设计是否已有?如果有会节约很多时间,没有你估计还得自己PS一下图片;
B.对编程是否有经验?从题主的问题可以看到你对编程估计经验不足;
社交软件分很多种,常用的无非附近人,发发图,拍拍照,修修图,拍拍视频;
下面分别介绍下各种技术:Android+后台,Java Servlet,走HTTP,不走Thrift,不走自有协议……
首先,讨论Android端:
1. 首要条件是熟悉Java编程,没有任何计算机基础的人麻烦,有基础的人学起来估计很快;
2.其次熟悉Android的开发环境,直接开头从最简单不复杂的页面开发,那么你需要了解:Activity,Fragment, Service工作机制,以及SharedPreferences、Sqlite、文件存储等,了解常用界面layout编写,知道一些界面的兼容,这些东西都知道就够了,一个简单APP就可以搞起;
如果能知道一些加密协议,比如:DES/AES,IMEI绑定(社交很容易导向约炮/黄图等问题,所以得做点措施),MD5等更好;
3.会用到一些Android上的开源组件:图片加载-ImageLoader,滑动刷新-PullToRefesh/SwipeRefreshLoadLayout,图片渲染-GpuImage等等,要知道并且会用;
4.一些需要的公共服务:位置定位-百度定位(百度地图API-首页)/高德定位(LBS开放平台 | 高德地图API),推送-百度推送/极光推送等等,数据统计-友盟统计,这些应该够了;
5.与服务器交互的协议:HTTP协议的掌握,get/post就够了,补充:Volley网络请求库等;
其次,讨论后台:
1.由于你是新手,我们这里开发语言直接用Java/PHP,Java的话就直接Servlet就Ok,简单容易,上手快,如果PHP就LAMP,个人推荐Java,知道一点HTTP协议;
2.数据库直接用Mysql,操作起来方便,熟悉的人多问起来快速有人回答;
3.学会SQL的编写,基本的Select、Update、Insert、Index就够了,不会Join之类不怕,就多写几个语句,性能差不怕,抗住就行,后面再改;
4.数据库连接用:JDBC,简单容易上手快;
5.聊天系统可以用第三方的融云之类,我记得有个日活20W以下不收费的;
6.短信系统也可以用第三方的;
7.服务器就直接用阿里云,买一台阿里云,直接跑一个Mysql+Tomcat就行了,后面有用户了升级再说;
总之,原则就是市面上有的,开源的,最便宜的都可以拿来用。
综合一下,首要是Java语言,然后知道Android编写界面,知道Android跟后台HTTP交互,知道Service开发,知道Servlet编写,知道JDBC操作,等JDBC写好可以升级知道数据库连接池(DBCP)。
一个人开发一个安卓社交APP不难,如果是业余时间,每天下班回家到12点,这样每天大概4个小时,外加周末每天12个小时,一个月足够了(有经验的条件下)~
A.UI设计是否已有?如果有会节约很多时间,没有你估计还得自己PS一下图片;
B.对编程是否有经验?从题主的问题可以看到你对编程估计经验不足;
社交软件分很多种,常用的无非附近人,发发图,拍拍照,修修图,拍拍视频;
1. 首要条件是熟悉Java编程,没有任何计算机基础的人麻烦,有基础的人学起来估计很快;
2.其次熟悉Android的开发环境,直接开头从最简单不复杂的页面开发,那么你需要了解:Activity,Fragment, Service工作机制,以及SharedPreferences、Sqlite、文件存储等,了解常用界面layout编写,知道一些界面的兼容,这些东西都知道就够了,一个简单APP就可以搞起;
如果能知道一些加密协议,比如:DES/AES,IMEI绑定(社交很容易导向约炮/黄图等问题,所以得做点措施),MD5等更好;
3.会用到一些Android上的开源组件:图片加载-ImageLoader,滑动刷新-PullToRefesh/SwipeRefreshLoadLayout,图片渲染-GpuImage等等,要知道并且会用;
4.一些需要的公共服务:位置定位-百度定位(百度地图API-首页)/高德定位(LBS开放平台 | 高德地图API),推送-百度推送/极光推送等等,数据统计-友盟统计,这些应该够了;
5.与服务器交互的协议:HTTP协议的掌握,get/post就够了,补充:Volley网络请求库等;
其次,讨论后台:
1.由于你是新手,我们这里开发语言直接用Java/PHP,Java的话就直接Servlet就Ok,简单容易,上手快,如果PHP就LAMP,个人推荐Java,知道一点HTTP协议;
2.数据库直接用Mysql,操作起来方便,熟悉的人多问起来快速有人回答;
3.学会SQL的编写,基本的Select、Update、Insert、Index就够了,不会Join之类不怕,就多写几个语句,性能差不怕,抗住就行,后面再改;
4.数据库连接用:JDBC,简单容易上手快;
5.聊天系统可以用第三方的融云之类,我记得有个日活20W以下不收费的;
6.短信系统也可以用第三方的;
7.服务器就直接用阿里云,买一台阿里云,直接跑一个Mysql+Tomcat就行了,后面有用户了升级再说
聊天app开发前,中,后期详细给您讲解下:
一、App开发前期
1、明确app开发需求
在明确需要开发一个app前,首先要问自己,为什么要做一个app,手机app需要什么系统版本,app是给谁使用的,面向的用户是哪些群体等。要对开发app行业进行了解,分析app开发的可行性。
2、确定app开发报价
在确定完需求后,开发公司会根据沟通内容出一份开发app功能需求列表,目前普遍使用思维导图居多,可以根据这份思维导图增加或删除功能。敲定好功能需求后,再确认使用什么开发模式进行开发等细节。较后开发公司会核算开发所需周期和人员投入,提供一份详细开发价格表。
二、App开发中期
1、确定视觉UI界面设计
UI设计是APP正式开发的为数不多步。一般来说,app风格较好简洁大方,功能一目了然,能让用户为数不多眼留下好印象。效果图的制作会根据app的需求、app的LOGO、app面对人群来选择主色调,终让客户确定。
2、着手开发app应用程序
在确定好app界面风格后,就可以正式进入app应用程序开发了。目前主流app包括两类,一类是基于安卓系统的app,另一类是基于苹果系统的app。两种系统使用的开发语言和工具不同,但是流程基本都是包括前端开发、后端开发、应用接口开发、服务器环境构建等。此外还有就是页面标注和手机适配,这是app开发项目独有的流程。这个环节是为了能够让app在不同手机上也能正常显示和使用,后期上线不会影响用户使用app的体验。
3、进行app整体测试
测试内容包括:APP内容测试、APP性能测试、APP功能测试、APP视觉测试、对于BUG调试修复。如果测试问题需要及时修复,直到测试结果通过,App的整体开发才能完成。可以多邀请一些内部人员进行测试,充分优化和测试app的体验度和稳定性。
三、App开发后期
1、App打包上线发布
全部做好之后就可以在各大应用市场发布上线了。APP上线审核,俱备苹果开发者账号的前提下,一般苹果的APP store审核大概需要一个星期,安卓审核在3天左右,甚至更快,所以我们要注意把握好这个时间,不要让审核时间耽误上线时间。而且,有个别情况会导致审核失败,需要修改资料重新提交,这样就会导致审核周期更长。
2、App后期维护升级
完成开发上线后,app开发公司根据合同要求,交付相关内容,合作完成。至于后期需不需要维护升级得根据双方合同要求。
总结四个软件开发方法,各有千秋,ThinkSNS开源社交系统希望能够给你提供参考:
方法一:自己组建团队进行软件开发
前提:充足的资金、等得起的时间。
这两句短语的意思就是字面意思,如果要选择这个方式,那么一定要做好准备。不管你的资金是自己/团队/公司/投资等方法获取的,但是资金必须足够,否则中途资金链断裂,软件开发就半途而废。开发一个软件的投入远超过你的想象,如:开发一个全平台的软件(PC、H5并接微信、Android APP、iOS APP),以最少配置来说,每个端至少一个技术人员,团队搭配是1个服务端、1个前端、1个Android、1个iOS,还需要1名设计师、1个测试、1个产品经理、1个项目经理,这么一看,至少8人,如果要减少那就把产品经理和项目经理结合成一人,也需要7个人。你可以算算,这7个人一个月的薪资、社保、公积金、福利费,加起来是多少,再结合时间计算,你就知道需要准备多少资金。如果软件开发中途,因为没钱而放弃,那就叫做“偷鸡不成蚀把米”。
再说说时间吧,一个软件系统从需求分析开始,到上线运营,这个时间比较漫长。当然,这里面你自己对软件质量的要求也是一个决定因素。一个软件的研发历程----需求分析、原型图、设计图、前端搭建、服务端搭建、项目研发、项目测试修复,然后才是上线,而且在运营过程中,还会有bug需要维护。所以,前前后后的研发时间,我就不多说了,请根据软件功能进行预算。
还需要注意的是,如果你的团队是全新组建,以前没合作过,那么,还需要预留一部分团队磨合时间。以上就是所谓的“等得起的时间”。
优势:团队成员每天在一起,便于熟悉进度、管理团队、控制风险和质量;
团队人员熟悉代码,便于维护和后期迭代升级;
源码和知识产权全部属于自己,不会外泄
劣势:资金耗费大、时间长,如果是新建的团队,还有一定的协作和管理风险,管理成本较高。
方法二:技术孵化器
前提:软件系统有足够的发展潜力、出让部分股份、靠谱的技术孵化器;
时间和资金就强调了,能够做技术孵化的公司,资金就不用你考虑。你需要考虑的就是**需要出让一部分股份给技术孵化公司,技术孵化看重的是软件系统的发展潜力。**所谓发展潜力,就是你的软件在将来有足够的发展前途,这个找资本投资是一个道理,只有你的软件产品有足够的发展潜质,技术孵化器才会孵化你的软件。
还有一点需要注意的是,除了孵化器选择你,你还需要选择好的软件孵化器,并且要达成一个共识,那就是项目进度时间安排一定要严格执行,共进退。
优势:管理成本低,只需要和团队的项目经理协作到位就好
有成熟团队风险低,没有团队磨合的风险(前提是选择了可靠的孵化器)
时间可控(前提依然是选择了可靠的是孵化器)
劣势:代码有泄露的风险(可以合同约定做防范)、需要出让部分股份;
方法三:软件定制开发(软件外包)
前提:靠谱的软件外包供应商、明确的软件产品需求;
这里面的时间、金钱都不是大问题,因为这个途径一定会比自己组建团队节省资金和时间;所谓靠谱的软件外包供应商,你就得擦亮眼睛来选择了,稍有不慎,那就是钱花了,软件没做出来或者软件做出来没法用。前一段时间有一个粉丝,就抱怨没有早点联系ThinkSNS,之前在别处花了30万,做出来一套废系统。
怎么区别软件开发外包供应商靠不靠谱,我介绍几个最简单的鉴别点:是否有大公司案例及优质案例、公司规模及资质、公司服务体系、公司项目管理标准。**千万不要为了贪便宜丢做出不能用的软件,错过风口,毕竟“一分钱一分货”还是祖宗们传下来的的老道理。
明确的软件产品需求指在软件开发过程中,杜绝大量/频繁修改需求,否则将会延长时间,以及打乱项目工作安排,如果你觉得你能够支付这里面的时间和金钱,你随意,毕竟你是上帝;没有任何优秀软件是第一次研发出来就完美的,请将修改放在二期研发,毕竟上线抢市场经济才是最重要的!小心错过时间就错过一个风口!
优势:时间可控、资金可控
劣势:代码不可控、有一定的风险
方法四:购买软件系统源码,做二次开发
前提:合适的软件系统源码、软件产品需求明确;
合适的软件系统源码指能够找到类似功能的软件产品,这样能节省大量时间和金钱,如果你恰好找到一套功能极其接近你规划的软件产品,那么恭喜你,你节约了80%的金钱时间成本。
软件产品需求明确指**明确软件的需求,能够快捷找到合适的软件系统源码,便于在购买的软件源码上面做二次开发。**二次开发自己团队做还是软件外包,请参考方法一、二、三。个人比较支持找购买源码的软件供应商做二次开发,毕竟他们是最熟悉自己代码的人,开发时间和质量更有保障。
优势:资金可控、时间短上线快、风险低、代码质量可控、开发文档齐全、便于后期维护
劣势:底层框架无法修改、源码有泄露风险(可合同约束)
以上几种方法,性价比最高的是方法四、最能够把控的是方法一、最中规中矩的是方法三、最省钱的是方法二。你要问我到底哪种软件开发方法好,我就说不清楚了,俗话说的好对症下药才是最好的。
2019-08-29 · APP、电商、小程序、微商城开发制作
APP功能需求:1.你的需求(就是你想做成什么样的),整理成文档或者思维导图 ,2.画原型图
人员配置有:1.android开发工程师 ,2.美工(ui,交互)设计,3.服务端开发工程师(java或者php),4.测试人员。
硬件:需要购买服务器,具体需要看你APP的容量以及行业情况。
二、外包开发公司
功能需求这步是不能省的,一定要知道自己想要什么功能。
预算:不同的APP软件开发公司,价格是不一样的。一般都是根据你的APP的需求,再评估这个APP开发的难度和开发工期以及需投入的开发人员的多少去报价的。贵的几十万,几百万都可能。现在很多企业都选择商领云的在线制作,可以快速制作一款安卓社交类APP,价格只需小几万即可。