一个人开发一个安卓社交APP不难,如果是业余时间,每天下班回家到12点,这样每天大概4个小时,外加周末每天12个小时,一个月足够了(有经验的条件下)~
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)。