ios编程_ios编程指南 - CSDN
  • iOS编程(第4版)

    2020-07-30 23:31:53
    iOS编程》荣获Jolt生产力大奖。全书涵盖了开发iOS应用的方方面面。从Objective-C基础知识到新增加的语言特性;从AppKit库到常见的Cocoa设计模式;从Xcode技巧到Instrumen tst等。如果读者刚接触iOS编程,阅读本书...
  • iOS.Programming.The.Big.Nerd.Ranch.Guide.5th.Edition书中全部例子代码~
  • 作为一个开发者应该学会去整理收集开发常用的工具类,这些复用的工具可以在项目开发中给你很大程度提高你的工作效率。...所以选择一款功能强劲且实用的编程工具对开发者来说可谓是大有裨益。小编收录和整理了对...

    作为一个开发者应该学会去整理收集开发常用的工具类,这些复用的工具可以在项目开发中给你很大程度提高你的工作效率。难道你不想早点完成工作,然后出去撩妹、陪女朋友或者回家陪老婆孩子吗?反正我想早点回家。


    iOS10正式版的发布,无疑又掀起一场开发热潮。iOS开发工具多如牛毛,开发者在编写大段代码时,难免会出现结构或语法错误。所以选择一款功能强劲且实用的编程工具对开发者来说可谓是大有裨益。小编收录和整理了对开发者有帮助的5大iOS编程工具,旨在帮助更多的“独立开发者”徜徉iOS 10开发世界。


    1. CodeRunner

    在这里我还是要推荐下我自己建的iOS开发学习群:680565220,群里都是学ios开发的,如果你正在学习ios ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有iOS软件开发相关的),包括我自己整理的一份2018最新的iOS进阶资料和高级开发教程



    CodeRunner 是一款轻量级,可以编写和运行多种语言的编辑器,它不需要安装额外的语言环境就可以执行多种语言代码。如果开发者想要测试一段代码或者一个API具体的功能,用Xcode未免过于麻烦,而CodeRunner却恰巧弥补了Xcode在这方面的欠缺。开发者只需要在CodeRunner中编写一个短小的代码片段,即可测试代码和API的具体功能。


    此外,CodeRunner能加快开发者的编程速度,所以开发者可以在很短的时间内完成代码编写工作,通过CodeRunner测试无误后,就可以把它拷贝回Xcode的项目中,极大地提高了开发者的工作效率。


    CodeRunner的主要功能:


    支持多种语言:CodeRunner默认支持AppleScript、C、C++、Java、JavaScript(Node.js)、Lua、Objective-C、Perl、PHP、Python、Ruby和Shell等多种语言


    自定义模块:无需写出完整代码即可快速的测试和执行代码片段和API。


    强大的的代码编写能力:CodeRunner具有自动补全、句法高亮、多标签页、自定义主题等功能。

    内置控制台

    支持Retina显示

    支持运行各种类型代码

    完全编码支持,自定义运行编译器


    2. AppCode

    AppCode是全新的Objective-C的IDE集成开发环境,旨在帮助开发者开发Mac OS X和iOS系统的相关应用程序。


    AppCode主要功能:


    代码补全:AppCode的代码补全并不局限于类、方法或者变量,它甚至还具备了十分可靠的上下文推测能力,假如开发者编写一个从未出现过的变量,AppCode都会询问是否要添加这个变量。这样开发者将有机会避免一些可能无意义的来回跳转,而更加专注于有效代码的编写。


    代码检查和修改:AppCode的代码分析是实时进行的,在编写代码的过程中,开发者就能看到存在的问题。另外,AppCode提供了高度可定制的代码风格模版,并可以很简单地将其套用到任何代码上。这样,不论开发者写多少代码,最后产生的代码都是漂亮优雅的。


    快速跳转:Xcode的最大问题就是难以定位文件和类,想要寻找一个文件的话,基本上不可能完全用键盘来实现。但是AppCode中添加了高效的导航功能,配合类似于微博的特定符号的搜索,可以完成从文件到类的快速跳转,避免了可能出现的鼠标操作,提高了开发者的工作效率。


    AppCode的不足:AppCode同样也有一些不足之处。AppCode在某些情况下需要依赖Xcode,它没有集成Nib编辑器,在打开Nib文件时会自动去开Xcode,Instrument工具也要调用Xcode。

    完整的Xcode的兼容性

    即时的代码转换,支持i18n

    及时的代码分析、搜索、转换功能

    可直接在iOS设备和模拟器上运行


    3. Chocolat

    Chocolat是Mac系统上最新出现的一款强大的文本编辑器,支持vim模式、多种编程语言、窗口分割、标签页、色彩主题等功能。另外Chocolat具有实时的代码检错功能,它可以在编写代码时检查代码的正确性(目前只支持Ruby、Python、PHP和JavaScript)。

    关键词高亮显示

    兼具了Cocoa强大的文本编辑功能


    4. Alcatraz

    Alcatraz是一个开源的Xcode管理器,可让你更快捷地发现和安装插件、模版和颜色方案。只需要简单地点击或者勾选,而无需手工克隆或拷贝文件。

    5. Mou

    对于熟悉Markdown的人来说,Mou是一款不错的文本编辑器(Mac平台)。相比同类型产品,Mou 在功能性和易用性上都有众多特色,在其简单的界面之后,不仅拥有自定义样式、增量搜索、中文字体“漂移”优化,还支持终端命令行启动、内容发布、竖版文字布局,甚至还可以作为任务列表使用,其Markdown双栏布局的实时预览和同步滚动功能更是被众多应用借鉴和采用。


    Mou的开发者——罗晨,一个中国开发者可以在国外流行的标准之上做出一款更加优秀的产品,特别是考虑到其并非科班出身,这无疑更加给了国内众多“野生程序员”们莫大的动力。


    Mou的主要功能:


    实用的代码编写:Mou为开发者提供一系列的快速输入Markdown既定语法元素,减少了开发者在编写代码上所消耗的时间。


    实时的代码修正:开发者在Mou的左栏写Markdown代码,右侧就能实时显示输出效果,从而能实时地为开发者检查代码的正确性。


    展开全文
  • IOS编程第四版

    2020-07-27 23:30:32
    ios编程第四版
  • 小编在网上找了一下资料,总结了一些经验,如何从一个iOS毛头小子到现在的高级工程师,先跟大家分享一下一些好的资料。1首先推荐几本教材...

    小编在网上找了一下资料,总结了一些经验,如何从一个iOS毛头小子到现在的高级工程师,先跟大家分享一下一些好的资料。

    1首先推荐几本教材

    http://www.bignerdranch.com/we-write/objective-c-programming.html

    http://www.bignerdranch.com/we-write/ios-programming.html

    (这两本书都有中文版的)

    在这里我还是要推荐下我自己建的iOS开发学习群:680565220,群里都是学ios开发的,如果你正在学习ios ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有iOS软件开发相关的),包括我自己整理的一份2018最新的iOS进阶资料和高级开发教程

    不管学什么编程语言都应该多实践,看一小时书写一小时代码,不懂的查书看。

    刚学iOS时看了好几本书,觉得这两本写的很好,很系统,有点相见恨晚的赶脚。

    这两本应该以 iOS 那本为主,OC 那本作为参考,

    初学时没必要看完这两本才做app,如果看了一半觉得可以就开始写自己想写的app, 边做边学,事半功倍。

    如果你觉得以上两本都掌握了,可以看本刺激的书来升华一下:

    http://www.bignerdranch.com/we-write/advanced-mac-osx-programming.html

    这本书有很多有用的代码,内容涵盖多线程,网络通讯,安全,Block 等,想要称为高级开发人员,这本书一定要看看。

    2苹果的 Programming Guide 很有用

    苹果的programming guide 写得很好很详细,不过个人觉得不太适合入门,如果基础比较扎实又想提高一下必须看看 Concurrency, Block, Core Data (尤其是core data 在多线程中的实现),Core Animation (想要做出好看的app, 一定要有炫酷的动画效果,一个开源app里面也有很多 2D/3D动画实例: https://github.com/frodoman/crazy-cup-2014 )programming guide, Google 一下就可以找到,都是免费下载的。

    3有空一定要看看乔布斯的传记

    作为 iOS 开发员,一定要读懂理解苹果的产品,为什么苹果的产品这么简单易用功能又强大?为什么一个快要破产的公司后来可以抛离微软谷歌几条街? iPod,iPhone,iPad 这些跨时代的产品是怎样研发出来的? 当时买的是有声读物( https://itunes.apple.com/gb/audiobook/steve-jobs-exclusive-biography/id474962097 ) , 每天挤地铁时听听,两个多星期才听完第一遍,每次听都收获匪浅。在面试的时候显摆一下里面有意思的故事,面试官马上对你刮目相看。

    更重要的是要把里面关于UX (用户体验) 设计的理论应用起来。比如在苹果设计iPod的导航菜单时,乔帮主提出: 不管用户想听什么,只要点击3次就可以找到。(因为超过3重导航用户容易get lost) 从此就注意,每次只要用UINavigationCroller 就保证不超过3重菜单,Sometimes有 SB UX 想要加好几重导航,只能感慨的长叹:乔老帮主死不瞑目啊。。。然后很快就会看见一个新版本的UX设计。

    来自: 神秘的程序员们


    4一些很好的视频必须看看

    什么是跨时代的伟大产品,什么是创造历史,看看第一代iPhone的发布视频吧。这个反复看了几遍,除了学到一些做presentation 的口语,还学到了一些有用的UX 原理。(忍不住要感慨一下: 乔老帮主太牛了,如果没有iPhone, Andriod 也不会有今天繁华的局面,人类智能手机的发展将倒退好几年。也许正因为这个,上帝才不让乔帮主多活。。。呜呼哎哉!上帝什么时候才会再赐一个乔帮主给人类啊!)

    在这里不能不提一下,很多人做ppt/presentation时, 喜欢把一大堆文字和表格放到一页上,谁会看啊? 眼睛都忙不过来怎么听清楚说什么啊? 我们做ppt都应该想老乔的那样,简单大方,每页几个字或几张图片,这样观众一看就明白说什么,

    YouTu 上还有很多优秀的关于 iOS/UX 的视频,大家有空看看,能学到很多。

    例如,这个系列的视频不错:

    UIKonf 2014

    https://www.youtube.com/watch?v=44-2vmqQBl0

    5 最好把英语学好

    这个不是特别重要,但是学好了,你就更容易脱颖而出。

    其实不管哪门编程语言,最好的资料一般都是英文的,学好英文就可以学更多更好的技术,更容易了解编程的思维。

    我本身英语也不好,四级都要考几次,关键就是要多用,天天用,上面提到的视频就是很好的口语教材,有空一定要多听多说。

    提高英文写作水平的一个很有效的方法就是多背好文章。当年为了把文章写好,背很多这本书里的文章,效果不错,大家不妨试试,

    展开全文
  • 首先推荐一篇比较简单易懂的多线程编程与异步的基础介绍,可以对ios的多线程有个简单的了解:https://juejin.im/post/5a309c525188255ea95befef 官方文档(个人感觉不适合零基础的同学,建议还是先把基础刷一下,...

    基础

    首先推荐一篇比较简单易懂的多线程编程与异步的基础介绍,可以对ios的多线程有个简单的了解:https://juejin.im/post/5a309c525188255ea95befef

    官方文档(个人感觉不适合零基础的同学,作为初学者的我看的有点痛苦😭):线程编程指南:https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Multithreading/ThreadSafety/ThreadSafety.html#//apple_ref/doc/uid/10000057i-CH8-124887

    GCD使用

    先放常用的,其它用到的后续慢慢补充😑
    参照:https://medium.com/@KentaKodashima/swift-grand-central-dispatch-gcd-80bcb16a147f
    https://www.jianshu.com/p/d5cc4768034c

    附一篇OC语法的GCD使用,也可以做一个参考学习:https://juejin.im/post/5a90de68f265da4e9b592b40

    场景1:

    1. 在指定时间后,将block添加到主队列(常用于处理定时器相关UI任务)
    2. 在异步队列中添加耗时久的任务,且任务完成后,需要修改UI
    3. 在某一个任务处理期间,不允许其它任务进行
    4. 以任务组的形式添加任务,并在任务全部完成时,通知另一个队列(通常是主线程队列)

    代码

    GCDTest.swift:

    import Foundation
    
    class GCDTest{
        public init(){ }
        
        // 1. 在指定时间后,将block添加到主队列(常用于处理定时器相关UI任务)
        public func testDispatchMain(){
            print("testDispatchMain begin!")
            DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()+3, execute: {
                    print("this is dispatch main! testDispatchMain End")
            })
        }
        
        // 2. 在异步队列中添加耗时久的任务,且任务完成后,需要修改UI
        public func testDispatchAsynAndMain(){
            for i in 1...5{
                DispatchQueue(label: "test").async {
                    print("this is dispatch asyn!\(i)")
                    DispatchQueue.main.async {
                        print("this is dispatch main! asyn")
                    }
                }
            }
        }
        
        // 3. 在某一个任务处理期间,不允许其它任务进行(2.和3.用的是同一个队列,但是由于3增加了barrier属性,从而使2.的任务和3.的任务隔离开 -- 如果没有添加这个属性的话,两者的完成顺序不定)
        public func testDispatchBarrier(){
            DispatchQueue(label: "test", attributes: .concurrent).async(flags: .barrier) {
                print("this is dispatch barrier!")
                DispatchQueue.main.async {
                    print("this is dispatch main! barrier")
                }
            }
        }
        
        //4. 以任务组的形式添加任务,并在任务全部完成时,通知另一个队列(通常是主线程队列)
        public func testDispatchGroup(){
            let dispatchGroup = DispatchGroup()
            for i in 1...4{
                DispatchQueue(label: "testGroupQue\(i)").async(group: dispatchGroup) {
                    print("this is dispatch group\(i)!")
                }
            }
            
            dispatchGroup.notify(queue: .main) {
                print( "All tasks has been completed 😋😋😋")
            }
        }
    }
    

    调用:

    		let gcdTest = GCDTest()
            gcdTest.testDispatchMain()
            gcdTest.testDispatchGroup()
            gcdTest.testDispatchBarrier()
            gcdTest.testDispatchAsynAndMain()
    

    运行结果:

    testDispatchMain begin!
    this is dispatch group1!
    this is dispatch group3!
    this is dispatch group2!
    this is dispatch group4!
    this is dispatch barrier!
    this is dispatch asyn!1
    this is dispatch asyn!2
    this is dispatch asyn!3
    this is dispatch asyn!4
    this is dispatch asyn!5
    All tasks has been completed 😋😋😋
    this is dispatch main! barrier
    this is dispatch main! asyn
    this is dispatch main! asyn
    this is dispatch main! asyn
    this is dispatch main! asyn
    this is dispatch main! asyn
    this is dispatch main! testDispatchMain End
    
    展开全文
  • 这是一个毫无编程经验的菜鸟在成长为 iOS 游戏开发者后,总结的成长史。短短6个月间,他从 Python 入门,发展到给 Mac 开发小游戏,再到自学Objective-C 和 Cocos2d。    这是一个毫无编程经验的...

    这是一个毫无编程经验的菜鸟在成长为 iOS 游戏开发者后,总结的成长史。短短6个月间,他从 Python 入门,发展到给 Mac 开发小游戏,再到自学Objective-C 和 Cocos2d。

     

        这是一个毫无编程经验的“菜鸟”在成长为 iOS 游戏开发者后,总结的成长史。短短6个月间,他从 Python 入门,发展到给 Mac 开发小游戏,再到自学 Objective-C 和 Cocos2d。除了你可能已经读过无数次的励志元素,文中的书籍、网站推荐以及开发过程中的经验教训总结很值得打算或刚刚进入苹果开发领域的新人一看。

    我是菜鸟

        几乎刚好是6个月前,我决定开始从事一项新的职业。2010年10月之前,我从未接触过编程。要说有,那也只是在6年级时学过了大概一周的非常基 本、基本、基本的编程知识。就这些。我不知会学成什么样。2010年10月9日我在微博上写道:“我究竟想干吗?我决定学习编程,我没有任何的基础。唉, 兄弟们,我有些担心。”这是一段生涯的开始,我很高兴能走上这条路。我不会回头。

    开端

        我将只快速简单的给你们讲一下我前几个月的学习过程,因为这段时间非常的枯燥。我从Invent with Python这本书开始,这是一本对新手来说非常不错的教程。为了让你们知道它是如何的初级,我向你们展示这本书里的一段话:

        + 这个符号是来告诉计算机把2和2相加。做减法用这个符号 -,做乘法用星号(*)。

        在我学会了一些非常基本的知识后,我随意的做了很多文本形式的小游戏,比如刽子手,jotto,猜数字。我的第一个比较大一点的小玩意叫做“大齿怪”。这个游戏的情景是关于一个大齿怪(就把它想成一个怪物吧),祸害村里。它藏在什么地方,你需要去猜它在哪:

        也就是在此时我收到了我的第一张珍贵的粉丝画的作品。我把这个游戏发布在了Reddit上,Michael Hussinger为它制作了这张令人惊叹的封面画:

        接下来,我转移到了我的第一个半图形游戏:”扫雷“。在此时我才开始真正的理解构造一个灵活的游戏引擎有多么的重要(没错,就像我开发的这个游戏引 擎)。这个游戏仍然是文本形式的,但已经有相当的灵活度了,在这个游戏里,我可以指定布景的大小和地雷的数量。这样一来游戏就可以从头再玩,你可以把地雷 数量设置很小而很快能看到游戏的结果,这样有趣多了。下面就是这个游戏:

    欢迎使用苹果iOS

        此时,我已经感觉到应该转向真正的图形游戏了。我感觉陷入了僵局。我根本不知道从哪里入手。我研究了一下SDL,这个东西超过了我的接受能力,我很快放弃了。因为我知道最终我想做iPhone应用程序,我请教了Matt Rix (Trainyard),他给了我一些很好的建议。他建议我从学C语言开始,然后学Objective-C,然后Cocos2d。今天说起这些我很快高兴,这三种语言我都学会了,虽然很基础。

        在学习C和Obj-C时,我遇到的大量的挫折,我没有做出多少游戏。很多次,我真的怀疑是否能渡过难关、找到出路。很多东西当我第一次看到时愁得我挠掉了很多头发:结构体,数组,多维数组,属性,表现层,控制层,协议和代理,内存管理,还有很多。很多东西我目前仍然无法理解领会。但是我坚持继续下去,我对很多人都说:让自己进步的唯一方法就是不断的做游戏。我十分清楚,想成为钢琴家,练习时根本,所以,这也是我需要的(我就持续这样下去)。

    欢迎使用Cocos2d

        一旦我最终把iPhone应用的基本知识攻克下,我立即开始研究Cocos2d。我很紧张,也很兴奋。现在,我不知道自己是太挑剔还是太笨,我感觉 Cocos2d的文档写的不太好。所有的类,方法,属性都列出来了,但却很难让人读懂,它们解释的不太清楚。一个例子:每个”node“(Cocos2d 的主要元素)都有一个”(BOOL) isRunning“属性。看起来非常的简单,但它似乎能够表示任何意思。所有的文档对这个属性的解释都是:”标志这个node是否在运行。嗯,ok … 不用说,Cocos2d里面有很多东西我都十分的困惑。

        尽管这些的不满,我还是非常喜欢Cocos2d。一旦掌握了一些基本知识,我就开始研究它如何能够容易的做出一个简单游戏,让它马上能跑起来。我已经知道了如何做音乐和声效,我还知道一些Photoshop,我就真的开始要让它输出一些很酷的结果了。起初我对Cocos2d很困惑,我从Ray Wenderlich的一些非常棒的教材开始学习。
    我开发的各种暂且算是游戏的游戏

        下面的是我的第一个Cocos2d游戏,它是我直接按照Ray的教材开发出来的(我在里面还加上了我的音乐和当一个敌人被消灭时的很傻的音效!):

        接着,我仿制了一个Pong。这个游戏还可以多人参与!:

        Pong之后,我受到了鼓舞,决定开发Tetris。这是个巨大的错误。我根本没有准备好。我遇到了各种让人懊恼的错误和问题,当我最终把框架搭起来后,我在微博上写了这样的话:“我很骄傲。我为我的Tetris仿品开发了一个真正复杂的类/子类系统。”Noel Llopis很快的告诉我,说我的决定十分的错误。我搜集了一些教材,试图好好的修改一下这个仿Tetris游戏,但太困难了。我决定放弃,但有一天我会打败你的,Tetris!

        这次Tetris失败的尝试之后,我受Tilt to Live的启发做了一个游戏初始原型,我计划在这个游戏里,你需要去收集红点来获取积分,而不是像其它游戏里去避开它们。现在做的这个里面并没有加入真正的游戏里面会有的音乐:

        学习了更多的Cocos2d之后,我突然来了灵感要做一个循环的褶皱纸样式的背景。于是把一张纸做出褶皱型,以循环方式填充背景。然后我在上面放了 一个小圆片,你可以用加速器让它在上面滚动。当我弄明白如何让这个小圆片滚动后,我为自己能做出这个东西很自豪,因为这牵涉的一些数学知识,我并没有用很 久的时间就把它能明白了(尽管只是一个很简单的几何问题)。背景很难看 —— 但很好用:

        接着,当我看到了即将发布的游戏Bumpy Road的令人惊讶的海报后,我受启发,心想是否能够也做一个跟里面的高高低低的路面相似风格的游戏元素。很显然,我的做图水平很有限,你可以比较一下。

    Bumpy Road:

    我的版本:

        这之后,我想在真正的动画上试试身手。以前从没有做过动画,先在Photoshop试试。人物的制作很乏味冗长。即使是画一条很傻很短的线条也很费 劲。但我还是完成了,我把他称作“狂欢者”。他能做的就是一遍遍的张开和闭上他的大嘴,每次都随机的发出一些哼哼声。你还可以在屏幕上移动他。背景闪动不 同的颜色。当你触碰屏幕时,他只能哼哼和张嘴:

        然而,“狂欢者”有了一小队粉丝。这些粉丝的头像图标里包括Mario, Link, Samus,等等。事实上我把这个游戏发给了Touch Arcade的Jared(嘿,是他向我要的)。之后,让我大吃一惊和无比高兴的是,Retro DreamerCraig Sharpe创作了我的第二张正规的粉丝的艺术作品!下面就是Craig为“狂欢者”创作的杰作:

        他的作品是如此的优秀,我甚至把它放入了我的下一个游戏里。但起初,我突发奇想,要做一个跳杆子的游戏。起初的出发点只是为了使用一个简单的游戏技 术测试一下视差背景的效果,但做下来就做成了这个游戏。最终的游戏有一个小屏幕,有记分功能,有重玩功能,有音乐、音效,各种跳跃高杆,有一个高度指示 器,甚至还有一个鸣谢页面!它是我的功能最全的一个游戏。我在游戏里画了一些非常丑陋的精灵,就像你下面看到的:

        因为画的太差,我询问Michael Hussinger是否愿意为我做一些简单的修改,他同意了!他在二十分钟内就画出来一个让人惊叹的匹萨伙计。我估计花几个小时也画不出这么好的作品来。他还为游戏中的视差效果画了一个漂亮的山作为背景。下面的就是在他的帮助下游戏的样子,我加上了标题和鸣谢页:

        游戏运行中!

        我的下一个游戏受Trainyard的启发。我想看看是否能做出 一个地图,上面画些网格道路,卡车能跑在上面。看看,制作“狂欢者”有了很好的回报。所以我称这个为“狂欢大巴”。游戏的玩法就是点击地图上的一个地方就 设定一个聚会点(一个闪烁的,颜色变换的点,伴有音乐),然后图上会画出一条路,通向这个点,“狂欢者”会把他的“狂欢大巴”开到那里。不用说,这是一个 非常简单的游戏。但里面很酷的东西是,当他到达目标地点后,音乐声会变大,卡车会开始跳舞,Craig画的作品会出现在开车上面左右摇摆!

        代码写的很乱,有很多问题。我让弟弟试玩了一下,他式了三次,什么都没干成,他总是每次都是在错误的时间点击到错误的地方,这样游戏根本就不能正常 玩下去。每次我都要从头开始玩这个游戏,因为我没有给它加入“重新开始”的功能。但我还是挺为这个Trainyard的复制品感到自豪的。Matt应该为 此感谢我。

        我的下一个项目是要做一条蛇。我发现了这个如何用flash做出一条蛇的教程, 我只需要把它移植到iPhone上。这个教材让我明白了很多如何做这种游戏的内幕。之前,我计划让蛇每一帧移动一次,但在如何让蛇尾和蛇身保持一致的问题 上遇到了很多的麻烦。我本打算建一个数组存所有历史动作,蛇尾将按照这个数组里的信息做它的每个动作,但这样一来它动的太快,让人很不舒服。这个教程整个 颠倒了我的思维,我意识到蛇其实根本没有动。这种看起来在移动的视觉效果其实是简单的在帧上添加和移去一小段蛇身产生的。这样,当你捡起一 个苹果,所需要做的只是告诉程序不要删除任何片段。事实上我需要重新写这个程序,因为界面太难看了,控制的也不好。因为我是移植过来的,代码写的很乱。但 事实上作为一个基本的游戏来,它还是很不错的!

        在完成这条蛇之后,我打算制作“狂欢大巴2”:“狂欢者”的周末狂欢。我把上一版升级了一些。我在里面加入了一些Trainyard里面的速度条, 一个车站,车可以从里面开车,一些声音特效(当他被碰着时会出现很大的汽车相撞的声音,而且会喊出“今天没有活动!”),程序也整理的更整洁了。但没多 久,程序又开始变乱,当我要纠正一个问题时,另外一个东西又出现了问题。最大的问题是当我把速度设成最大时,卡车会在路上某个点崩溃。这是因为更新调用的 太频繁,程序来不及在下一次调用前更新完。尽管我知道这个问题的原因,如想修复这个问题需要重做大量的东西。我想我需要升级到“狂欢大巴3”:最后的狂欢。

        我最近的目标是重做Doodle Jump。目前为止一切进展顺利。里面很多小平台,移动速度会约来越快,一个会跳的小人,一些其它物品(目前为止只有一个弹簧),自定义音乐和声效,以及完全从原作里拷贝的背景。目前为止我对做出的东西很高兴。我会继续往里面增加很多的东西。

     

    结论

        练习给人带来的进步是惊人的。每次当写出一个新程序,我都会遇到大量的无法预知的问题和bug。当遇到挫折时,我一般是将问题移到下一次升级时解决。这让我感觉自己就在走一个while循环:

    while (编程技术仍然很糟) {
          练习时间++;
          程序 * 新程序 = [程序 程序类型:游戏];
          if (新程序.做的很好吗 == 是的 && 练习时间 >= 大量) {
              编程技术仍然很糟 = 否;
          }
      }

        我会一直这样制作下去,一转眼就到现在了,我几乎等不及想知道再6个月后会是什么样。请下次当我来述说如何给Casey’s Contraptions制作音乐(和一些声音)时,请记住一定来看看!

        英语原文:My First Six Months of Programming: From Man-Rodent to Partyman

        由《外刊 IT 评论》翻译 http://www.aqee.net/2011/04/26/first-six-months/

    展开全文
  • iOS 编程(第6版)》 配套资源 含源代码 《iOS 编程(第6版)》 配套资源 含源代码
  • ios编程第六版,英文版。本书有两个特点:涵盖iOS应用开发必备知识:从Swift基础知识到新语言特性,从AppKit库到常见的Cocoa设计模式,从Xcode技巧到Instruments
  • iOS 编程 第5版 源代码与资源WithSwift-solutions
  • iOS编程 第六版 PDF英文完整版,附原书代码。 相对于第五版此版本更新到 iOS 10, Swift 3 and Xcode 8。 iOS Programming The Big Nerd Ranch Guide 培训界的经典用书,教你怎么编程
  • 课程材料适合Objective-C和iOS编程初学者使用,不过一定的面向对象编程概念和编程语言知识是必要的。 该课程由25堂课组成,每堂课均提供实际教学视频、讲稿和每周为巩固动手能力而布置的作业。课程从 基本概念...

    斯坦福大学正通过iTunes U提供一门免费的入门课程——“一起编程:开发iPhone及iPad应用(2013年冬季学期)”。课程的所有视频和讲稿(PDF格式)均可下载。课程材料适合Objective-C和iOS编程初学者使用,不过一定的面向对象编程概念和编程语言知识是必要的。

    该课程由25堂课组成,每堂课均提供实际教学视频、讲稿和每周为巩固动手能力而布置的作业。课程从 基本概念入手,如讲解Objective-C语法、内存管理和模型-视图-控制器模式(MVC)等知识,逐步讲授如何进行iOS应用开发。更深入部分涉及UI元素、数据库访问及iCloud集成等主题。除了实际的编程外,该课程也会讲解Xcode IDE和测试 、调试、剖析(profiling)和源代码管理等技术。
    iTunes上有一本配套的电子书,提供了有用的文档和互动的内容。

    由于本课程的实际教学还在进行,因此有些讲座材料还未能提供。“iPad及iPhone应用开发(2011年秋季学期)”是同样的课程,不过没有覆盖iOS中的最新变化。

    要下载开发工具并访问更多开发文档,必须在苹果开发者中心进行注册。基本注册是免费的,但仅限于在iOS模拟器上运行应用。在iPhone和iPad上部署应用、或在iTunes商店销售应用需要付费订阅(每年99美元)。

    本课程由Paul Hegarty讲授。从斯坦福大学毕业后,他加入了NeXT Computers公司并成为研发带头人。在那段时间,他曾参与开发NeXTSTEP操作系统,该系统后来被Apple公司收购。Mac OS X和iOS都是由NeXTSTEP发源而来的。

    查看英文原文Stanford Offers Free Introductory Course on iOS Programming

    原文链接:http://www.infoq.com/cn/news/2013/03/stanford-ios-programming-course

    展开全文
  • 最近做的一个项目,虽然不大,但刚开始接触iOS编程,遇到和克服的问题还不少,记录下来,温习一下,或者对别人也会有一点帮助。 这个项目采用的是swift和objective C,CPP混合编程的方式,有些模块之前在别的平台...
  • 通过阅读本书,你将学习 Swift 面向对象的概念、理解如何使用 Apple 的开发工具,以及探索 Cocoa 是如何提供 iOS 应用所需的底层功能的。
  • 教,是最好的学。写在这里的学习笔记,既是写给刚刚开始学习iOS开发的初学者,也是写给自己的。...回到正题,《iOS 编程》这本书,是Big Nerd Ranch出的,只要你有稍微的C或Objective-C基础,就可以开始看这本书了
  • IOS编程浅蓝教程

    2012-11-10 16:39:02
    IOS编程浅蓝教程 IOS编程教程(五)自定义UITableView的表单元格 摘要: 在此之前,我们已经创建了一个通过简单的表视图应用程序并显示预定义的图像。在本教程中,我们将继续努力,使应用程序变得更好...
  • IOS编程:Address Book

    2012-10-15 11:07:48
    IOS编程:Address Book 在IOS中,允许用户对Address Book(地址簿)进行添加、编辑与删除操作。地址簿可以是一些人的集合,也可以是一系列群组的集合。里面的每一个人都有诸如姓氏、名字、电话号码、电子邮件等...
  • ios编程笔记:CFSocket

    2012-08-27 08:54:54
    ios编程笔记:CFSocket(服务端) 主要函数: 第一步:创建  CFSocketRef CFSocketCreate( CFAllocatorRef allocator, //内存分配类型一般为默认KCFAllocatorDefault  SInt32 protocolFamily...
  • 做了几年的 android 开发了,有点腻,现打算学习IOS开发。 参照 http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1418055&page=1 安装 Mac 10.9,然后通过 AppStore 在线更新到 10.9.5,只为了能用到 XCode...
  • 如果你app都不懂得怎么创建,或者连怎么搭建IOS开发环境Swift语言都还不熟悉,请先看本系列...为了增加学习的乐趣,本章用最简单的方式来制作一个简单的动画,先让大家体验一把IOS编程的魅力。 在这章只介绍操作过...
1 2 3 4 5 ... 20
收藏数 115,231
精华内容 46,092
关键字:

ios编程