怎么开发一款社交APP
推荐于2018-03-07
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)。
2018-07-05 · 互联网+时代高效组织信息化平台
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)。
2019-03-26 · 百度知道合伙人官方认证企业
一、模板开发
APP模板开发的速度较快,开发价格从几千块到几万块不等,与定制开发相比,开发时间快,价格也较低。
当然有利就有弊,APP模板开发出来的APP安全性很差。由于模板源代码所有权归App开发商所有,企业只有使用权,再加上一套模板可能被很多家企业使用,所以很难保证代码安全性,极易被黑客攻击造成信息泄露。
另外,模板APP很难个性化修改。模板类App都是固定的功能和代码,很多APP甚至连前端的UI都不能修改。所以造成开发出来的APP用户体验极差。
二、定制开发
定制开发,就是开发公司按照客户要求定制App的功能和界面。定制开发通常都有一套完整的流程,从用户需求分析,到团队组建,再到UI设计程序搭建,APP程序完成后的反复测试,再到最后的上线APP应用商店。都是有完整流程保障的。
因为牵扯到人工成本和开发周期,和市面上的模板App相比,企业定制App的费用要稍高一些,从几万到几十万不等。由于需要反复测试修改各项功能,开发时间也要稍长一些。
如果您是想开发一款拥有完备功能和完美用户体验的APP,还是要选择靠谱的APP定制开发公司!
社交app 开发的3大步:
第一步:APP产品的需求分析
需要产品经理对市场进行需求分析,通过公司的策略,对用户的需求进行一个用户研究分析,通过分析后来研究确定所要开发的APP产品的主要功能,然后制定出一个具体的执行方案。比如社交软件微信,最主要的是达到人与人之间的一个完美的沟通,消除网络的障碍,甚至超越现实中的一个面对面的沟通从而达到一个生动形象的表达。那么这个过程中需要的是什么?
首先是文字和语音功能,是用于表达说明。而单纯的文字又显得枯燥,那么就需要面对面沟通中人们所希望看到对方的表情一样。把语言表达的更加清晰。这个是一个研发过程的一个发散思维与逻辑思维的结合。
第二步:APP产品设计
根据APP产品经理的研究分析方案,设计团队根据方案进行一个产品的设计,这个部分有两个团队,一个是APP的交互设计团队,一个是负责界面设计的UI设计团队。这两个团队分别负责不同的任务。
交互设计主要根据产品经理中用户的需求分析设计出用户使用最简单方便的操作方法,通过对页面跳转进行设计,然后设计出原型图交给开发团队进行研究开发。
APP UI设计则配合着进行一个视觉的界面设计,这里起着主要的作用。是机器与用户沟通中的一个视觉门面的设计工作。当然其中也包含APP的用户体验设计、APP交互设计等方面的技巧。然后把这些切图和标注提交到客户端开发人员。
第三步:开发设计与测试
得到原型设计图后开发团队开始进行产品的研究开发。根据不同的程序系统“ios”和“安卓”设计出不同的产品软件,然后进行一个测试调试,修复BUG,完善产品。这一个过程是耗时最久的一个环节。也是整个APP成型的关键步骤。同时也需求方、设计方与程序员直接沟通频次最高的阶段。
这两句短语的意思就是字面意思,如果要选择这个方式,那么一定要做好准备。不管你的资金是自己/团队/公司/投资等方法获取的,但是资金必须足够,否则中途资金链断裂,软件开发就半途而废。开发一个软件的投入远超过你的想象,如:开发一个全平台的软件(PC、H5并接微信、Android APP、iOS APP),以最少配置来说,每个端至少一个技术人员,团队搭配是1个服务端、1个前端、1个Android、1个iOS,还需要1名设计师、1个测试、1个产品经理、1个项目经理,这么一看,至少8人,如果要减少那就把产品经理和项目经理结合成一人,也需要7个人。你可以算算,这7个人一个月的薪资、社保、公积金、福利费,加起来是多少,再结合时间计算,你就知道需要准备多少资金。如果软件开发中途,因为没钱而放弃,那就叫做“偷鸡不成蚀把米”。
再说说时间吧,一个软件系统从需求分析开始,到上线运营,这个时间比较漫长。当然,这里面你自己对软件质量的要求也是一个决定因素。一个软件的研发历程----需求分析、原型图、设计图、前端搭建、服务端搭建、项目研发、项目测试修复,然后才是上线,而且在运营过程中,还会有bug需要维护。所以,前前后后的研发时间,我就不多说了,请根据软件功能进行预算。
还需要注意的是,如果你的团队是全新组建,以前没合作过,那么,还需要预留一部分团队磨合时间。以上就是所谓的“等得起的时间”。
优势:团队成员每天在一起,便于熟悉进度、管理团队、控制风险和质量;
团队人员熟悉代码,便于维护和后期迭代升级;
源码和知识产权全部属于自己,不会外泄
劣势:资金耗费大、时间长,如果是新建的团队,还有一定的协作和管理风险,管理成本较高。
方法二:技术孵化器
前提:软件系统有足够的发展潜力、出让部分股份、靠谱的技术孵化器;
时间和资金就强调了,能够做技术孵化的公司,资金就不用你考虑。你需要考虑的就是**需要出让一部分股份给技术孵化公司,技术孵化看重的是软件系统的发展潜力。**所谓发展潜力,就是你的软件在将来有足够的发展前途,这个找资本投资是一个道理,只有你的软件产品有足够的发展潜质,技术孵化器才会孵化你的软件。
还有一点需要注意的是,除了孵化器选择你,你还需要选择好的软件孵化器,并且要达成一个共识,那就是项目进度时间安排一定要严格执行,共进退。
**优势:**管理成本低,只需要和团队的项目经理协作到位就好
有成熟团队风险低,没有团队磨合的风险(前提是选择了可靠的孵化器)
时间可控(前提依然是选择了可靠的是孵化器)
**劣势:**代码有泄露的风险(可以合同约定做防范)、需要出让部分股份;
方法三:软件定制开发(软件外包)
前提:靠谱的软件外包供应商、明确的软件产品需求;
这里面的时间、金钱都不是大问题,因为这个途径一定会比自己组建团队节省资金和时间;所谓靠谱的软件外包供应商,你就得擦亮眼睛来选择了,稍有不慎,那就是钱花了,软件没做出来或者软件做出来没法用。前一段时间有一个粉丝,就抱怨没有早点联系ThinkSNS,之前在别处花了30万,做出来一套废系统。
**怎么区别软件开发外包供应商靠不靠谱,我介绍几个最简单的鉴别点:是否有大公司案例及优质案例、公司规模及资质、公司服务体系、公司项目管理标准。**千万不要为了贪便宜丢做出不能用的软件,错过风口,毕竟“一分钱一分货”还是祖宗们传下来的的老道理。
明确的软件产品需求指在软件开发过程中,杜绝大量/频繁修改需求,否则将会延长时间,以及打乱项目工作安排,如果你觉得你能够支付这里面的时间和金钱,你随意,毕竟你是上帝;没有任何优秀软件是第一次研发出来就完美的,请将修改放在二期研发,毕竟上线抢市场经济才是最重要的!小心错过时间就错过一个风口!
优势:时间可控、资金可控
劣势:代码不可控、有一定的风险
方法四:购买软件系统源码,做二次开发
前提:合适的软件系统源码、软件产品需求明确;
合适的软件系统源码指能够找到类似功能的软件产品,这样能节省大量时间和金钱,如果你恰好找到一套功能极其接近你规划的软件产品,那么恭喜你,你节约了80%的金钱时间成本。
软件产品需求明确指**明确软件的需求,能够快捷找到合适的软件系统源码,便于在购买的软件源码上面做二次开发。**二次开发自己团队做还是软件外包,请参考方法一、二、三。个人比较支持找购买源码的软件供应商做二次开发,毕竟他们是最熟悉自己代码的人,开发时间和质量更有保障。
**优势:**资金可控、时间短上线快、风险低、代码质量可控、开发文档齐全、便于后期维护
** 劣势:**底层框架无法修改、源码有泄露风险(可合同约束)
**以上几种方法,性价比最高的是方法四、最能够把控的是方法一、最中规中矩的是方法三、最省钱的是方法二。**你要问我到底哪种软件开发方法好,我就说不清楚了,俗话说的好对症下药才是最好的。
如果你还是不知道怎么选择,可以选择ThinkSNS开源社交系统,整套社交APP源码