十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这主要体现在一下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,这个过程当中自己自然就会去找答案、找材料、解决答案啦。
希望能帮助到跟我一样初学入门的朋友。
转载