我的第一次wwdc小记

昨晚上十一点多就开始上床,然后快一点起来看了wwdc大会。 这是我开发两年以来第一次看wwdc大会,本来不想写的..天天复习考试也不想写。刚刚看到巧大写了一篇微信,我决定也写一篇。 首先想抱歉一下昨晚上和今天一大早朋友圈的朋友们,被我刷屏了,第一次看未免有点激动。也算是做个记录,后来都删除了只保留了短的。我相信这一定是很多人看到自言自语最长的朋友圈了。 过去的很长时间里,我彻底的开始对mac和iOS的软件开始了狂热,各种买买买和体验,偶尔还自己想想咋做的。所以这次发布会看到macOS还是很激动的。下面依次来说。 watchOS 说实话,我对watch没啥感觉,因为太小了。不过这次watch推出了几个功能我很期待,一个就是加入了游戏的引擎,一个是可以在watch上手写字。游戏这个东西,其实在watch上还有很大想象力。所以,值得期待。 其他我觉得watch最让我喜欢的,是和健康一系列相关的东西,比如一个叫做breath的app,感觉很符合我的口味。虽然感觉高仿了pause。 macOS 改名了,真改名了。从OS X到macOS,以后stackoverflow怎么搜索..驼峰命名也是服。 不过说实话,我超级喜欢。超级期待Sierra。 最新的版本叫Sierra,我想是不是因为集成了siri进去。 终于可以自动解锁,超爱。 剪切板和iphone同步,超爱。 存储优化,刚刚看巧大的文章说是放到icloud,顿时没期待了。。 apple pay要和支付宝进行狙击战了。 还有通知中心可以放文件,这个超期待。一直觉得mac的通知中心没有什么用处,超级鸡肋,这下通知中心可以用起来了。 说实话,siri for mac真的值得期待,就是,我一直觉得对着电脑说话很奇怪..不过siri确实提供了很多东西,值得体验。 虽然吐槽说,逼死了很多软件,但是说实话,就解锁,剪切板,通知中心,我就非常期待了!! iOS 推了10。 总结一下,就是iMessage要爆炸。 整个iOS10最大的亮点就是iMessage。infoq的群里都在说微信和iMessage…说就差个朋友圈了。 不过说实话,这个可以聊聊。 苹果想好好搞,你真的搞不过它。iMessage设计的,无比的充满想象力。各种神奇的效果,我简直。服了!!!iMessage值得体验。我觉得微信的聊天比起iMessage弱爆了。 iMessage把聊天气泡做的让我觉得,充满了感情。就是这么个感觉。 各种对于图片的效果,包括全屏效果也是,让我觉得更适合去表达感情。就这,就够了,超级nice。 然后就是通知中心这个,有人说像安卓,这么一听,是有点像… apple music和地图说实话,我不是很期待,因为music我觉得还是不好看。地图的话,得体验才能知道,国内高德什么的还是挺不错的。 苹果特意强调了加密,这点是作为一个大公司来说很重要的。 最后想说说homekit。看苹果这样,想做一套,智能家居,然后用手机连接一切。小时候看虹猫蓝兔3000问,那时候说智能家居,各种神奇的控制,现在看来,不远了。我很期待那一天。 对了,siri可以发微信了..我也是,服了。 Swift 推出了swift playground..很多人以为是ipad上可以写代码了。 尼玛,就是一个给娃娃学编程的软件。 本来想攒钱买ipad的都不想买了。但是可以预见,ipad写代码,这是迟早的事情。 没说Swift3,我表示很失望。 小细节 库里三上发布会 虽然今天输球了。但是库里真的是影响力大,湾区和硅谷也是近。据说勇士已经打入硅谷内部了。 watchOS,macOS和iOS都出现库里了。 表示我库很厉害。 又逼死一波软件 MacID,nearlock,clean my mac。 其他 据说Xcode8很值得期待。图像可以直接预览,支持官方插件。没仔细看。 内置app可以删除一部分了,这个很好。 对于开发者,说实话,我现在觉得watchOS和macOS的市场很大。远超于iOS。第一年看wwdc,只聊我看到的,其他也没花时间看,不多说。网上写的好的比我多了去了。 感觉上没有特别大的api的变化,当然这些新的extension是要去关注的。具体的,巧大的还有cyan大神都写了我也不多说,最后放链接。 最后 开发两年,第一年看wwdc,很感慨,失望和希望并存。失望更多的是Swift上面。其他没啥。希望,当然是我超爱的macOS啦。 未来的一年,我的重心可能会偏mac开发上。资金足够,入watch,顺便看看watchOS的游戏。 最后附上我昨晚上疯狂的朋友圈…这也是我今天这篇博客内容的主要来源。 希望明年我还能充满热情的看wwdc这是我看的第一次,希望有机会可以去现场看 可以参考的链接 WWDC2016 随想 iOS 10 给开发者带来了什么 WWDC 2016 Videos...

六月 14, 2016 · 1 分钟 · Me

开发者头条插件小记

Github地址 下载移步 release 啊,昨天忘配图了..补个github的图.. 先要感谢 这不是软文,是真的感谢。 开发者头条是我安利过很多人的网站。因为说实话,做的真的很好。如果我觉得不好我就会换个网站开发插件了..在这里很多人会投稿一些些的好的文章。可以看到各个方面的知识。而且大部分的文章质量都很高(我已经从csdn迁移到开发者头条了)。慎哥也因为自己的投稿让自己的博客收获了很多的访问量,这对于开发者坚持写博客是一个很好的鼓励。所以,很感谢这么一个网站让我学到了很多东西。也让我扩充对整个计算机行业方面的认识不仅限于appweb还有后台了。 无论如何要感谢开发者头条的创始人戚祥,当我在微信联系他和他说的时候,他觉得想法很好,然后让他们公司的工程师蒋春成联系了我。感到非常巧合而又幸运的是,他是我11级的学长。遇到了校友真的很亲切,和学长聊了好久啊,而且都是计算机人。蒋春成给了我很多帮助。不仅给了我很多意见,还给了我很多开发需要的素材。 当然,还要感谢工作室的小伙伴,两台Mac电脑总是被我强行装上测试…特别感谢的还有慎哥,慎哥头一回那么支持工作,不仅装上了,还提了很多意见,大写的感谢。dkk同学甚至提了issue…也是厉害。 最后,当然是感谢iOS开发大社区,摸着良心说,我写不出来Alamofire和Fuzi这种库。我只能凑合凑合尽我最大努力看源码和用去学习。没有这些为社区做贡献的大神们,也就没有很多个应用。 起因 有开发Mac端插件的想法有两个原因,一是因为为了带小学弟,学起了Swift。二是因为看到了Tailor这个Mac端的插件。当我看到Tailor的时候我第一个想法是,卧槽,swift改变世界,第二个想法是,看上去Mac端开发也不难,估计api都差不多…尝试一下吧… 然后那几天就在想图拉鼎大神的Mac软件怎么做的。。正好那几天看OpenWrt需要php,php可以调shell和系统接口。想了想,啊,Mac软件开发嘛,就是调applescript和写iOS嘛,来试试吧~ 然后我就入坑了..在这大概分享一下整个的完成过程。 总结一句话,看源码。这学期虽然没有看什么大项目的..倒是完整的工程看了不少。我一次列在下面好了。 Tailor OS X Tutorial: Menus and Popovers in Menu Bar Apps Getting Started With OS X and Swift Tutorial: Part 1/3 producthunt-osx Fuzi 第一个就是有这个想法的来源。第二个第三个是ray上的教材,我没仔细看,直接把demo下下来的。第四个是那几天正好看到producthunt做了一个类似的,直接就下载了。Fuzi是用来解析xml的。大改就是这些东西。 遇到的坑 遇到的第一个坑,是tableview不识别identifier…后来不知道咋的自己就好了。。这个坑后来想了想,可能是改名字之后需要重新设置一下…想不到其他的了。感觉就是把所有的重新设置一下自己就好了。 第二个坑就是xml解析了。我依次尝试了Fuzi(Tailor里使用的),Kanna(这个是Yep里用到的),AEXML(这个是swiftgg在一片文章提到的),最近有看到雅虎的一个SwiftyXMLParser(这个也是swiftgg提到的),还没试验..但是看上去挺好的。 我的思路在一开始错了,几乎所有的解析xml都是可以用xpath来解析的,但是吧,我这个人偷懒,不想去学xpath,这就导致了我一路想用css来解析,后来发现坑了。于是开始转换思路写xpath,对着Tailor的解析写,很快也就搞定了。xpath是一个很好的东西,真的值得去了解和学习一下。 第三个坑,其实也不算坑,但是确实是个问题,就是Mac和iOS的迁移问题。正好,就那么巧…虾神前几天发了一篇UXKit的公众号文章,非常值得看下。对于我这种小项目,我觉得完全可以采用UXKit的方式。虾神在里面说的比我好太多了..毕竟不是一个水平。 不过说实话,我没想到Mac和iOS的api会差那么多。后面还是值得学习一下的。 最后就是,我在整个项目当中,是没有用到applescript的,但是这是Mac开发很重要的东西,后面也会想办法去尝试一下applescript。这是我很遗憾的一点。 彩蛋。 在看Tailor的代码的时候看到了函数式编程的东西..这也算是swift语言很重要的一点,我在上一篇的博客的时候介绍了部分haskell的东西。最近有在继续haskell的学习,所以顺便提一下。 在网络层,Tailor作者用了map函数,还用了flatmap,很好的对数据进行了分组解析再合并。这一块的代码我实在是觉得太nice了,就抄了。当然整个开发过程中很多代码都是抄的… 最后 我总和工作室的人说。要回馈这个社区,要懂得感恩。这一次我好像做了那么一点努力。这大概就是之前工作室死了的那个项目小初的初衷不忘初心吧。 之前因为做外包,也不会很认真的去看一些很牛逼的库,就是一味的实现功能。不会去像现在这样去做点自己觉得好玩的东西,去尝试一些没尝试过的东西。至少这次做了一个东西,自己会去用。之前的外包项目,我手机里都没安装。 而且就像蒋春成和我说的那样,这次,真的很有成就感。虽然这个代码的难度不高,实现的功能不复杂,但是做的很开心啊,也愿意去做。 即使没有外包没有钱,一种纯“情怀”的状态。 所谓穷开心,大概就是这么一种状态。 祝开发者头条越来越好,我这个重度投稿者也会继续投稿我觉得质量上乘的文章的~

五月 4, 2016 · 1 分钟 · Me

Block 我所理解的回调

FOR CM AND PLUSUB 废话 开发iOS距离一年还有四个月。block的文章看了很多。也在项目中使用了,但是使用率很低,仅限于最最简单的界面传值。 我最近处于一个深度学习和补作业做实验的阶段(重点是补作业和做实验),而且经历了两个项目现在对于OC的理解又更进了一步。于是抽时间把之前下载的关于block的视频又翻出来看了一下。有一些感受写出来,以便CM和PLUSUB以后的iOSer可以很快的学习到关于block的使用。以后这样的文章都会在标题加一个FOR CM AND PLUSUB。 概述 block就是闭包,可以用来回调。 再简单一点,指向函数的指针。 我现在只会简单的使用block,下午写了个demo利用block封装了afnetworking然后在另一个界面调用afnetworking的请求。当然不复杂。 上代码吧,不然再废话都解释不清楚什么是block。 part1 block的简单定义 我现在定义一个简单的block。 {% highlight objc %} void (^myBlock)(NSString *str);//1 myBlock = ^(NSString *str) { NSLog(@"—%@", str);//2 }; myBlock(@“11111”);//3 // Outputs:—11111 {% endhighlight %} 可以这么理解,我定义了一个返回值为void类型的block。void后面跟了一个函数,但是这个函数函数名是以^开头的,需要用括号包起来,参数也需要用括号包起来。参数可以是一个int类型,可以是一个NSString类型,还可以是一个函数!可以是多个参数还可以是一个函数。当然如果是int类型的block就需要return一个返回值了。 然后我们开始对这个void类型的函数进行定义。就是令它等于一个“^+参数”然后里面像定义一个函数一样就行了。 在调用这个block的时候就直接就myBlock加参数就可以了。 我们可以打断点来看一下整个block的执行顺序。我在代码后面加了标示。 执行顺序是1 3 2,可以看到myBlock没有按照程序执行的顺序来调用而是在调用之后执行了2的代码。这个例子可能不那么明显,但是可以开始初步理解回调。 part2 传参block 下面把难度加大一点,我们把block当参数传。然后看一个block的例子。 首先来回顾一个c语言里伟大的typedef,我们开头会利用typedef定义一个block。如果不利用typedef定义一个block,那么函数传参的时候会写很多代码。一会我会详述。 {% highlight objc %} #import “ViewController.h” typedef void (^MyBlock)(NSString *str);//typedef定义一个block @interface ViewController () @end @implementation ViewController (void)viewDidLoad { [super viewDidLoad]; MyBlock tblock = ^(NSString *str) { NSLog(@"—–%@", str);//1 }; [self testBlock:tblock];//2 } (void)testBlock:(MyBlock)mBlock //如果开始没有用typedef定义的话,此处的函数变为- (void)testBlock:(void(^)(NSString *str))myblock //简单的说格式就是 “返回值 + (^) + 参数 + 名字” { mBlock(@“1111”);//3 } // Outputs:—–1111 {% endhighlight %} 在上面的代码中,我们写了一个testBlock的函数,将我们的tblock作为参数传到了testBlock函数里面,然后再testBlock里用mBlock调用了我们所写的MyBlock这个函数。...

五月 29, 2015 · 2 分钟 · Me