源于一个需求:希望从Launcher进入应用的时候,根据不同情况进入不同的Activity。
场景其实有很多,比如根据登录状态进入主界面或者欢迎界面、在应用第一次启动时做一些准备工作等。诚然,对于具有启动界面的App,可以在这个Activity中进行判断并选择稍后需要跳转的Activity,而且这种做法也是可行的。但是,我并不认为启动界面是良好用户体验的一部分,而且并不适用于任何场景。
我认为启动界面适用于“改变环境”的应用,通常是一些生产应用或游戏。
源于一个需求:希望从Launcher进入应用的时候,根据不同情况进入不同的Activity。
场景其实有很多,比如根据登录状态进入主界面或者欢迎界面、在应用第一次启动时做一些准备工作等。诚然,对于具有启动界面的App,可以在这个Activity中进行判断并选择稍后需要跳转的Activity,而且这种做法也是可行的。但是,我并不认为启动界面是良好用户体验的一部分,而且并不适用于任何场景。
我认为启动界面适用于“改变环境”的应用,通常是一些生产应用或游戏。
标题的意思是:中午吃完饭看了个电影,所以去朝阳公园去晚了;从朝阳公园回来看了个电影,所以照片整理晚了;整理完照片又看了个电影,所以博客写晚了……
昨天北京可是难得的好天气,正赶上周末,上午在楼下拍了几张,下午又去朝阳公园走了一圈。无奈去的比较晚,太阳都下山了,所以拍的照片后期成分比较多了,有的甚至就纯后期了……
昨天还有一个收获是看了三部电影~《魔警》、《银河护卫队》、《源代码》,感觉都是不错滴呀~
好啦,照片来了,就按照时间顺序发了
首先声明,我可不是5毛党~
今天出去在雾霾里游了一圈,真心举得鼻子太不舒服了,以后要戴口罩……好在老天有眼,让我一路堵车,还碰上两起车祸,多吸了点PM2.5,大脑一迷糊就回到家了……
吐槽就这么多吧,开始正式今天的推荐内容,小伙伴儿们能Hold住么~~
观望了一段时间发现也没什么事故,所以今天终于升级了,先上个图:
写这篇博客之前,真想大吼一声:Top Layout Guide,你到底是什么鬼!
在学习UIPageViewController的过程中,按照《【译】如何使用Storyboard创建UIPageViewController》编写引导页Demo,但是做完的效果和Demo效果有一些出入,效果分别为:正确效果、错误效果。
简单说就是当滑动到下一页的时候,下一页会有一个缩小效果,但是这个效果并不是手动添加的。
Apple给开发者发了通知:2015年2月1日起,向App Store提交的新app必须支持64位处理器,必须基于iOS8 SDK开发。当然开发者唯一要做的,就是按照Xcode6或更新的版本进行开发,并按照默认配置进行编译。(参考Apple Developer)
提这件事的目的是因为这让我想到了Android的碎片化。Android 4.0发布已经过了3年,到现在还在做兼容2.3系统app的还有多少呢?Android开源的特性本应该造就一批热血的极客面对优秀的系统优化和更新的API兴奋不已,但有多少Android开发者只是完成工作,解决bug,费力兼容老版本系统?
Android 5.0已经发布了,5.0又需要多久才能达到60以上的占比?开发者又需要过多久才能把最低版本设置为Android 4.4来支持ART和64位?至少,如果你是个人开发者,希望支持新API和新的系统。
前面是一些废话,今天聊一下ActionBar自定义那点事。Action Bar是在Android 3.0伴随Holo主题引入的,当然Android 3.0夭折以后的Android 4.0才算是Google第一次努力进行设备间的体验同步,Action Bar也是那个时候才开始被开发者广泛使用的吧。
Action Bar默认是Holo样式,并且在开发者网站也没有过多的自定义样式说明(Styling the Action Bar),甚至有些xml属性是ant都不会提示的,所以网上也有很多自定义Action Bar的博客,这里对我用到的一些做出整理和说明。
声明:本文翻译自AppCoda网站的文章:How To Create UIPageViewController Using Storyboard,如有异议,请联系博主。
之前我们已经讲过UIPageViewController,那篇文章演示了如何使用Interface Builder创建UIPageViewController。为了适配iOS7和Xcode5,我们重新写了这篇新教程——使用Storyboard创建UIPageViewController。
你第一次打开一个app的时候,一定会发现一系列的引导页(或者是操作指南)来给你介绍一些这个app的特性,这是给用户介绍app功能的通常做法。这篇文章中,我们就来看看如何用UIPageViewController创建一个类似的引导页面。
UIPageViewController在iOS 5 SDK中首次引入,它使得开发者可以使用这个ViewController创建分页视图。在iOS 6中,这个类有了更新,支持滚动过渡效果。使用Page View,用户可以方便的通过手势在多个页面之间导航。UIPageViewController并不仅仅用于引导页,很多游戏,例如:愤怒的小鸟,就是用Page View来展示关卡选择的页面,还有有关书籍的应用,用这个类来显示书的页面。
KVO:Key-Value Observing,是Foundation框架提供的一种机制,使用KVO,可以方便地对指定对象的某个属性进行观察,当属性发生变化时,进行通知。
使用KVO只需要两个步骤:
开始学习iOS有一段时间,先顺序学习了OC,Stanford的公开课看的差不多了,也写了些demo。觉得iOS在应用层的框架上和Android有很多相似的地方,或者,Android和iOS有很多相似的地方。通过学习iOS,也补充了之前在Android开发上一些盲区,跳出Android的框架看Android开发,又有新的看法,特别是对Android中MVC的理解。
下文从完成的MVC和细分出的导航环节对比Android和iOS,希望对你也有些帮助。如果你也有自己的看法,欢迎交流。两个“平行宇宙”的地方,是一些共同点或启示。
公开课的第一讲就是MVC;同样的,几乎看过的所有的Android教程里,也都会出现这个词。有关MVC的看法可以参见另一篇博文《iOS学习笔记——MVC》,在学iOS的过程中,不自觉地会和Android相对比,发现了很多以前在做Android开发时忽略的细节。
有没有哪一天让你难以忘怀?
有没有哪一天让你铭记于心?
有没有哪一天让你不想错过?
有没有哪一天……
——《那天》
本地存储是个很重要的模块,几乎所有应用都会用到,Apple的Core Data是和UIKit相同等级的技术机制,可见对其的重视,这篇博文对iOS的Core Data机制做个初步学习总结。
首先和Android上的机制做一下对比,iOS和Android一样使用SQLite数据库用作本地数据保存,两个平台也都对数据库操作做了封装:
Android:覆写SQLiteOpenHelper类进行数据库创建、更新等数据库层面的操作;使用SQLiteDatabase对象调用封装好的方法对数据库进行CRUD;使用ContentValue对象进行数据传递。实际开发中,为了增加效率,也会使用类似FinalDb之类的数据库快速开发库。
iOS:使用Core Data机制进行本地存储。和Android相比,CD机制更加抽象,在设计时通过Xcode进行可视化建模;在使用时通过CD机制,不需要接触SQL。使用NSManagedObject对象描述Entity,使用NSManagedObjectContext对象进行方便的CRUD操作。Core Data通过NSPersistentStoreCoordinator连接上层操作和底层存储。
下面从Core Data架构、NSManagedObjectContext获取和CRUD三个方面分别描述。