小白能自學做app嗎?
你好,很高興回答你的問題,我是一個在IT業摸爬滾打6年的程序員。
為了開發App,我們應該了解和學習哪些技能?對于一個想開發App的小白,或者想在這個行業工作的小白來說,這個問題確實令人困惑。畢竟,App開發不是一件很簡單的事情,有很多課程和內容需要學習。為了幫助解決這個難題,我簡要總結了自己開發App所需的技能。語言是App開發制作的基礎。如果我們看計算機語言的類型,數量將非常復雜。無論是開發iOS還是Android應用程序,您都需要學習編程語言。當然,這是一個大范圍的普遍情況。畢竟,每個方向的主要語言是不同的。根據自己的情況選擇最好的語言,但是語言是編程的基礎。
iOS開發學習路線
如何判斷自己是否入門
是否了解Mac
是否了解Xcode
是否了解Objective-C
是否會使用UI控件.
iOS開發你需要具備以下技能
Xcode的使用第三方庫的靈活使用
AFN
MJRefresh
各種網站的使用如何判斷是否可以升階
是否了解AFNetworking 的實現原理
是否了解SDAutolayout/Masonry 一種布局庫的原理
是否能夠處理基本的iOS崩潰原因/無法編譯原因/無法上架原因?
是否擁有了一定的工作效率,穩定的工作效率.(而不是說,上面派了一個活下來,忙都忙不完,天天加班,還一堆bug)
是否能夠處理第三方庫引起的崩潰.iOS開發進階
應用的內存處理
應用的推送處理
應用的模塊化/單元測試
應用的第三方集成/集中化管理/穩定迭代
閱讀強大的第三方源碼/擁有快速上手新的第三方庫的能力.
能夠接受各種新功能的開發(這里是指,即使你沒有做過,但是你仍然可以憑借著學習,解決任何業務需求:例如:藍牙.AR.攝像頭.硬件交互.等)
清楚明白數據的傳遞方式,應用與后臺如何交換數據,交換數據的過程,結果,格式.
多線程的靈活使用.
各種并發事件的處理/以及界面的合理性/流暢度
設計模式的靈活使用。
Android開發學習路線
基礎部分:
扎實的JAVA基礎,熟練掌握面向對象(OOP)思想,熟悉java序列化機制實現Android下IPC的機制。
好的開發習慣,一心追求流暢順滑的UI體驗,對代碼有潔癖。
熟練掌握Android四大組件(Activity,Service與intentService,LocalBroadcastManager的BroadcastReceiver,ContentProvider)。
熟練使用集合、IO流及多線程斷點上傳下載,和線程池的使用。
熟悉掌握RecyclerView,ListView等重要控件的使用和優化及(AsyncTask)異步任務加載網絡數據。
熟練掌握Android中的多點觸控(手勢識別器)、熟悉Android下View的事件分發機制與并能處理滑動事件沖突處理。
熟練處理Activity和Fragment和ViewPage的配合使用,并能熟練處理Activity和Fragment,Fragment和Fragment之間的通信。
熟悉掌握Android系統下的廣播(耳機的插拔,網絡狀態變化等)的相關功能開發。
熟悉Android下數據的加解密base64,DES,MD5加密和9patch圖制作來完成UI,熟悉Android圖像處理之Bitmap類。
界面UI:
熟練使用Android下常用的布局設計,新版本Material Design布局和設計,熟練自定義控件和一些主流的第三方控件的使用等。
熟悉Android中的動畫,選擇器,樣式和主題的使用,能夠實現市面上大多數動畫效果。
熟練并能獨立解決市面上各種Android機型屏幕的適配(圖片適配,Dimens適配和AutoLayout適配等等)。
網絡與通信:
熟悉Android下的Handler消息機制(Handler,Message,MessageQueen,Looper,HandlerThread),并能熟練使用Handler和熟悉使用EventBus 3.0和RXandroid機制。
熟悉XML/JSON數據解析和生成JSON/XML,以及Android下SQLiter數據庫存儲方式(greendao,ormlite)。
熟練使用ContentProvider來獲取和更改手機系統中通訊錄、短信的數據。
熟悉Android下混合開發,原生App和HTML5的使用,和js交互,數據通信。
熟練使用Android開發中重要模塊的開發如:網絡請求(AsyncHttpClient,Volley,OkHtttp,NoHttp,Xutils3.0里的網絡請求API等)。
熟悉基于Xmpp通信協議的IM(即時通信)開發,和第三方IM的開發SDK(融云SDK等)。
熟悉界面間的數據傳遞(intent和EventBus3.0等等),進程間通信(AIDL,文件共享等等)。
熟悉Android下網絡通信技術,對Socket通信、TCP/IP、Http有一定的了解和熟練使用。
框架模式:
熟悉掌握MVC模式,單例、工廠,觀察者,模板等設計模式。
熟練使用市面上主流技術的Android開發常用框架(greedao,ormlite,EventBus3.0,PullToRefresh,Xutils3.0等等)。
第三方及功擴展:
熟悉android 的JNI/NDK開發,通過JNI實現JAVA與C程序間的調用及回調數據通信。
熟悉使用支付寶,微信支付的SDK和銀行的卡SDK的接入,為App增加支付模塊。
熟練使用Android下的GPS定位和(接入百度地圖定位SDK實現定位,標記,搜索等功能)。
熟悉主流常用的第三方SDK(友盟統計,極光送,QQ和微信的三方登陸和分享SDK,基于訊飛語音的文字和語音的相互轉化開發)。
熟悉Android環境下的各類手機傳感器開發(光傳感器,方向傳感器等等)。
熟悉Android的二維碼開發,生成碼和解析碼,掃描碼的開發。
熟練掌握Android手機中的3G/藍牙/wifi的網絡通信機制。
熟悉安卓技術中的視頻播放開發技術(videoview,MediaPlayer ,Vitamo,VLC)。
熟練使用Android開發中圖片處理(imageloarder,fresco,picasso,Xutils3.0里的圖片加載API等)。
其他:
熟練掌握SVN版本控制工具及Eclipse、尤其是Android Studio和Studio下的DEBUG調試工具的使用。
熟悉android各版本SDK的差異及特性。
熟悉Android5.0和6.0以及7.0新特性(RecyclerView,MD設計,ART模式等)。
熟悉安卓App的線上App的熱修復技術(Andfix和Hotfix),熟練使用的Hotfix熱修復功能。
熟悉Android代碼的混淆機制和多渠道打包,和后期的市場發布上線App的BUG修復維護和優化。
熟悉App(需求,評審,開發,測試,打包,發布市場,后期維護和迭代等一系列流程)和獨立開發經驗。
總結:
不管是iOS開發還是Android開發,掌握語言基礎是前提,后期進階需要你有強大的自學能力,理解t能力。同時還需要時間的積累。app開發不是你一下就能掌握的東西,里面包含很多,希望你在以后學習運用過程中多多積累、多多總結。相信自己是可以的,祝你成功。