這主要體現在一下3點:1.關于跨平臺: Qt的一大優勢就是跨平臺,一份代碼若準守Qt標準開發,那么理論上可以跨所有Qt支持的平臺并且不需要修改。但是這個是有代價的。比如說對于iOS平臺,若用OC或者swift,可能用1份的開發時間就可以完成開發,但是用Qt可能是1.5份。這主要體現在Qt在移動平臺沒有提供現成的、成熟的(Qt目前有一個lab,是一個控件包,針對移動平臺有做優化,但是還在測試階段)控件供應開發者使用。比如說Qt沒有側滑窗口、沒有滑動返回、沒有頂部狀態欄,很多東西都需要自己造輪子,非常浪費時間,而且效果不一定好。我記得5.5的時候,連訪問系統相冊這個功能都沒有,要自己寫OC代碼去訪問,不過5.6加上了。這個開發的工作量,對于一個沒有跨平臺需求的App,明顯是不合適的。但是如果有跨平臺需求,那么可能是1.5份的開發量,就可以獲得iOS+Android兩份平臺的App,相比2份的開發量性價比就上來了。而且如果有需求還可以部署到WP、UbuntuPhone等移動平臺。2.關于Quick Qt從5開始,就主推界面用Quick開發(Quick是框架,QML是配合Quick的一個語言),然后用C++開發復雜的邏輯。這個愿景是好的,但是推行真的很慢。這是因為新的框架也就是Quick,帶來了新的學習成本,這個直接就嚇跑了很多人。我知道很多用Qt的人,即使開發了N年Widgets,對Qucik也可能都是完全沒有接觸的狀態。當然Quick本身是好的,相比Widgets開發效率高、漂亮、運行速度快。另外,如果是Widgets開發移動端App,我建議你直接打消這個念頭,還是算了。這主要是因為用Widgets開發的程序,各方面實在是太差了。比如說Widgets很多界面都是CPU繪制的,然后移動平臺CPU本來就弱,這就導致了界面很卡。還有開發效率也低。3.關于成熟度 從目前Qt5.6的角度看,已經加入了很多以前沒有的模塊了,我覺得用于Qt開發一些基礎的App,已經完全可以勝任了。但是對于功能復雜的App,我建議還是權衡一下比較好。還有就是現在很多SDK包,都只對原生框架做了適配,用Qt開發意味著還是要回到原生框架去處理一些通訊、交互什么的,這個也要注意。
創新互聯是一家專業從事成都做網站、成都網站制作、成都外貿網站建設的網絡公司。作為專業網站建設公司,創新互聯依托的技術實力、以及多年的網站運營經驗,為您提供專業的成都網站建設、成都全網營銷及網站設計開發服務!
作者:匿名用戶
鏈接:
另一本是Big?Nerd?Ranch出的《Objective-C編程(第2版)》。(推薦華中師大出的版本)
img?src=""?data-rawwidth="333"?data-rawheight="413"?class="content_image"?width="333"
——————————————————————
2、視頻教程的話,只推薦我贏職場出的iOS移動開發課程。
教程鏈接如下:
iOS9實戰開發教程
img?src=""?data-rawwidth="398"?data-rawheight="202"?class="content_image"?width="398"
講的細致是這門課程最大的特點。因此,這款教程尤其適合那些零基礎學習iOS的學員。我贏職場知名度不夠,但是做的課程不錯,可惜沒人聽說過這個品牌。這款教程是從Objc一直講到iOS高編。所以跟著這款教程走,iOS開發基本也可以學的差不多。
——————————————————————
二、其次,你要學習API,了解iOS?UI控件
Objc階段的學習只是帶你入門,如果你想進階,API和UI控件是必須需要學的。一門語言可能會有成千上百的API和UI控件。你不需要把他們全都記住,只需要記住一些常用的即可。
例如:Objc中的UITableView的dataSouce和delegate;NSDictionary、NSArray相關的增刪查改方法;JSON數組轉換方法;文件操作方法等。
UI控件的話,常用的有UIView、UITableView、UIScrollView、UIButton、UILable等。你要熟悉這些控件的屬性和相關的操作方法。
記憶這些東西,只靠死記硬背是不行的。多去寫代碼,多去實踐,這樣才能逐漸掌握。
學完這個階段,基本上就可以做出來一個簡單的APP了。由于沒有進一步學習高深的東西,咱們暫且不說流暢性和內存。
UI控件部分的知識點如圖:
img?src=""?data-rawwidth="607"?data-rawheight="531"?class="origin_image?zh-lightbox-thumb"?width="607"?data-original=""
——————————————————————
三、最后,你還需要了解iOS開發的底層原理。
能學到這一部分已經很不錯了。所謂專業的iOS開發工程師和一個業余的iOS開發愛好者基本也差在這最后一步了。這一部分的知識點也是在面試的時會經常問道的。如果你想找一份iOS開發工程師的職位,這一部分是非學不可的。
這一部分的需要掌握的知識點包括:
iOS內存管理、iOS運行時機制、RunLoop、多線程等
每一塊都需要掌握的很詳細。
你還要熟練使用類庫并閱讀類庫源碼,例如AFNetWorking、SDWeblmage等,這兩個是初學者必看的。
——————————————————————
這一階段的學習可以多去github上下載源代碼去閱讀。
推薦一些完整的源碼下載:
1、懶人筆記iOS客戶端
GitHub?-?liaojinxing/Voice2Note:?Voice2Note?iOS?client?source?codes.
2、《猿已閱》碼農周刊iOS客戶端
GitHub?-?icepy/manong-reading:?《猿已閱》碼農周刊?iOS?App(放棄維護,推薦大家下載《開發者頭條》App)
3、火狐瀏覽器iOS客戶端
GitHub?-?mozilla/firefox-ios:?Firefox?for?iOS
4、某位大神做的高仿網易新聞項目源碼
GitHub?-?dsxNiubility/SXNews:?High?imitation?Neteasy?News.?(include?list,detail,photoset,weather,feedback)
5、維基百科iOS客戶端
GitHub?-?wikimedia/wikipedia-ios:?The?official?Wikipedia?iOS?app.
6、品趣iOS客戶端
GitHub?-?ltebean/novel-design:?PinQu?ios?client
7、YoCelsius——一款天氣預報的應用
GitHub?-?YouXianMing/YoCelsius:?A?weather?app?that?uses?animation?to?give?you?an?at-a-glance?look?at?the?weather.
8、密記iOS版——款簡單的筆記應用
GitHub?-?iHTCboy/SecurityNote:?密記iOS版:本應用主要功能是簡單筆記。【已經開源,AppStroe可下載】The?application?of?the?main?function?is?a?simple?notes.
——————————————————————
四、關于swift語言的學習。
學習iOS開發分為Objc和swift兩個路線,以上介紹的是最經典的Objc路線。如果你想靠學習iOS開發找到一份工作,就要選擇從Objc開始學起。因為絕大多數公司都是以Objc為開發語言的。
然而swift作為一門現代語言,集合了很多編程語言的優點,并且比Objc也更加簡單易學,近幾年swift語言的發展勢頭十分不錯,大有取代Objc而代之的跡象。所以在這里建議題主把兩個語言都學習一下。并且Swift語言是在Objc的基礎上發明的,學完Objc,再學習swift也會更加容易。
關于swift路線的學習,可以看看我贏職場的iOS開發教程,有大篇幅的章節去介紹swift語言,并且講得細致入微,十分適合新手學習。
教程鏈接:iOS9實戰移動開發(swift加強版)
img?src=""?data-rawwidth="860"?data-rawheight="589"?class="origin_image?zh-lightbox-thumb"?width="860"?data-original=""
五、下面把自己多年來私藏的一些學習iOS開發的網站推薦給大家。當然這只是部分,贊數過百還會把這些資料再放出來一部分。所以,你們快點贊吧!
——————————————————————
iOS開發相關的網站:
1、我贏職場
上文已經介紹過了,他們家的課程質量算是很贊的了,教程最大的特點是特別適合新手學習。
2、tutsplus
不定時更新一些?iOS?教程
3、WWDC
蘋果官方每年一度的?WWDC?視頻,?可以了解歷年有關?iOS?發布的內容。
4、asciiwwdc
WWDC?的文字版
5、Swift?by?Robin?Eggenkamp
該網站收集了很多關于?Swift?的學習資料,?新聞。
——————————————————————
郵件訂閱:
1、iOS?Dev?Weekly
每周一期,內容多為這一星期里值得關注的?GitHub?項目、文章、工具等。
2、iOS?Design?Weekly
每周一期,會提供一些iOS開發的建議,新聞資訊以及創意方面的內容。
學習iOS軟件開發的步驟:
1、開發環境及工具。首先要學習開發環境配置和開發工具;這是基礎。
2、開發語言。這是學習iOS的重點,IOS應用就需要使用這種語言來開發App,重要性不言而喻。學習的過程就是多看書,多練習。
3、iPhone/iPad 開發基礎。在這一階段需要了解iPhone/iPad開發中常用控件,多做Demo,下一些別人的code,多參考研究。
4、代碼的優化及復用。這一階段就需要有更高的追求,不只是要完成功能,還有讓自己寫的代碼更優化,復用性更強。
5.另外為了吸引、幫助更多的人成為蘋果iOSapp應用開發者,蘋果上線了一個iOSapp應用開發官方教程。想成為一名iOS應用開發者的朋友,蘋果官方將會推出iosapp開發教程來告訴如何開發iosapp應用,需要什么工具、哪方面的知識等等。
6.開發iosapp,除了需要必備的軟件,比如Xcode、iOSSDK,還有硬件,比如一部Mac電腦、一部iOS設備用作測試。此外,最好還是參加蘋果的iOS開發者計劃,這樣,才可以更好地測試的app應用軟件,甚至讓自己開發的app在iTunesAppStore上架。
開始編譯安裝:
一、X11編譯:
1.進入qt-x11-opensource-src-4.5.0源碼目錄。
./configure -no-openssl
在我這里必須加上-no-openssl選項,否則在make過程中,編譯到ssl時會報錯。出錯信息為:
ssl/qsslsocket_openssl_symbols_p.h:264: error: variable or field ‘q_sk_free’
declared void
ssl/qsslsocket_openssl_symbols_p.h:264: error: ‘STACK’ was
not declared in this scope
ssl/qsslsocket_openssl_symbols_p.h:264: error:
‘a’ was not declared in this scope
ssl/qsslsocket_openssl_symbols_p.h:265: error: ‘STACK’ was not declared in this
scope
ssl/qsslsocket_openssl_symbols_p.h:265: error: ‘a’ was not declared
in this scope
……
……
默認安裝路徑為
/usr/local/Trolltech/Qt-4.5.0。可用--prefix 指定其他安裝路徑。
2. gmake
# linux下一般可直接用make代替gmake。如果要加快編譯速度,就加上 -jx ,x表示最大的線程數。
3.
gmake install
二、qt-embedded-x86編譯:
1.進入qt-embedded-linux-opensource-src-4.5.0-x86源碼目錄。
./configure -prefix
/usr/local/Trolltech/QtEmbedded-4.5.0-x86 -embedded x86 -no-openssl -qt-gfx-qvfb
-qt-kbd-qvfb -qt-mouse-qvfb
先后配置了安裝目錄、嵌入式架構(x86)。同時也跟X11版本一樣,配置了
-no-openssl,沒有這一項的話,make的過程中會出現跟編譯X11時一樣的錯誤。再后面的幾項是為了更好的配合qvfb,網上說如果沒有這幾項,安裝好qt-embedded-x86后想在qvfb上調試程序時,會出現類似下面的錯誤:
Error opening buffer device /dev/fb0QScreenLinuxFb::connect: No such
file or directory
2. gmake
跟x11版一樣
3. gamke
install
三、qt-embedded-arm:
與前面兩個不同,在編譯arm版本的qt-embedded前,必須確認已經安裝了交叉工具鏈,編譯過程中要生成許多arm架構的庫,所以必須有arm-linux-gcc、arm-linux-g++等工具。我用的是友善提供的arm-linux-gcc-4.5.1版本。
1. 進入qt-embedded-linux-opensource-src-4.5.0-arm源碼目錄。
./configure -prefix
/usr/local/Trolltech/QtEmbedded-4.5.0-arm -embedded arm -no-openssl
-qt-libpng
指定了安裝路徑、嵌入式架構。同時也跟X11版本一樣,配置了
-no-openssl,沒有這一項的話,make的過程中會出現跟編譯X11時一樣的錯誤。
另外,還增加了一項,
-qt-libpng,這個選項應該是關于png相關的庫,指定用qt自帶的png庫。如果沒有這一項,我這里會出現如下錯誤:
image/qpnghandler.cpp: In member function 'virtual QVariant
QPngHandler::option(QImageIOHandler::ImageOption) const':
image/qpnghandler.cpp:950:35: warning: 'png_info_struct::width' is deprecated
(declared at
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:639)
image/qpnghandler.cpp:950:35: warning: 'png_info_struct::width' is deprecated
(declared at
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:639)
image/qpnghandler.cpp:950:55: warning: 'png_info_struct::height' is deprecated
(declared at
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:640)
image/qpnghandler.cpp:950:55: warning: 'png_info_struct::height' is deprecated
(declared at
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:640)
make[1]: *** [.obj/release-shared-emb-arm/qpnghandler.o] 錯誤 1
make[1]:
*** 正在等待未完成的任務....
make[1]: Leaving directory
`/root/qt4.5.0/qt-embedded-linux-opensource-src-4.5.0-arm/src/gui'
make:
*** [sub-gui-make_default-ordered] 錯誤 2
看起來像是我的交叉工具鏈跟這個QT版本匹配的不太好,Qt好像不太兼容交叉工具鏈的png.h頭文件中定義的數據結構。加上 -qt-libpng
可解決此問題。
四、qvfb:
這時QT就已安裝成功。但是還需要額外安裝qvfb。
進入qt-x11-opensource-src-4.5.0源碼包目錄,然后
cd tools/qvfb
在qvfb源碼目錄下運行
make
會在qt-x11-opensource-src-4.5.0/bin下生成qvfb,我們將它copy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下即可。
end:
到這里,QT的開發環境基本就搭建好了,利用 qt-embedded-x86 和 qvfb
工具可以很方便的調試QT程序,調試好的程序再經 qt-embedded-arm
編譯就可在開發板上運行(還有個小問題,我現在編譯好的QT程序雖然可以在開發板上運行,但是運行時觸摸屏不能用,只能用USB鼠標控制,想支持觸摸屏貌似還需要移植tslib庫,等我折騰完了再回來把相關內容補充上)。
qt的代碼本身在windows和linux底下用qtcreator編譯可以跨平臺,但要發布的話還要手動的靜態編譯qtcreator源碼,mac,ios開發好像要用mac平臺下的軟件,android一般是java,python之類的,qt沒聽說過。qt是c++的超集,加了些qt自己的庫而已。
自己去年12月的時候說要更新一個詳細的答案,結果就被我自己爛尾忘記了,最初寫這份答案的時候自己還是在摸索階段,推薦了下面這些材料:
斯坦福大學的CS193p公開課:最新版是2013年winter。課程不僅包括iOS入門基礎知識,而且還會布置由該教授親自設計、涵蓋整個課程的作業。
蘋果官方文檔:每一份GUIDE都是一本迷你的教材,寫得很精致,而且每一份guide都會延伸到其他知識。可以從這篇開始:馬上著手開發 iOS 應用程序。
Ray Wenderlich:很多step by step的教程,適合掌握一定知識之后跟著教程做著玩。
上面這三分資料,確實就是我剛開始學習iOS開發的時候用得最多的資料,在著手開始iOS Code之前,需要學習相關Objective-C的知識。
對我幫助最大的可以說是CS193p這個課程(免費的哦),我跟著這個課程一行一行代碼完成布置的作業,課程完成之后我就能夠自己寫一個簡單的app出來,并且我也知道該在哪里問問題、怎樣找答案(很重要)。
當我了解整個app的制作流程之后,我就給自己定計劃,1個月之內必須開發出一個app,從原型設計、界面設計、到CODE。
最終我做了幾個實驗性的app,雖然沒有在app store上架,但是能夠在自己的ipad、iphone上運行展示,我就拿著這幾個app去面試,很幸運地找到現在的工作。
工作之后一直在使用的材料:
蘋果官方文檔,必須的參考書;
StackOverFlow,一有問題就問他;
Github,搜索關鍵詞iOS或者objective-c,會發現很多高手已經把大部分基礎性功能實現并且貢獻出來了;
另外teamtreehouse提供收費的在線教程,應該比較容易入手。
所以我認為,其實用什么材料雖然也很重要,但是市面上優質的材料呢,不外乎那么幾份,最重要的是自己有一個idea要落實下來把它完成、寫成一個app,這個過程當中自己自然就會去找答案、找材料、解決答案啦。
希望能幫助到跟我一樣初學入門的朋友。
轉載
分享標題:包含qtios開發教程的詞條
文章地址:http://vcdvsql.cn/article36/dsdeopg.html
成都網站建設公司_創新互聯,為您提供營銷型網站建設、App設計、全網營銷推廣、自適應網站、網站營銷、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯