iOS 开发怎么入门?

发布于:2023-07-21 17:18:06

曾经自学iOS开发一个月捣鼓出来一个简单的日程管理APP

https://itunes.apple.com/cn/app/lean/id903615490?mt=8

,发布后几天鬼使神差地进入了App Store的推荐榜,获得了不少好评。本人算是多年的程序员,不具有代表性,只是回顾一下当时的学习经历,仅供参考。

入手第一台Mac后(至今后悔为神马快到晚年了才入手),就想着试水一把iOS开发,老婆说希望找个好用的Todo管理APP,心想就拿一个简单的Todo应用祭旗吧。

我上来看的是Standford的iOS教程,不太喜欢看视频,基本拖着过,主要看配套的讲义,视频主要目的当是练听力。当时还是Objective-C的版本,OC语言看的是官方文档,适应一下函数调用语法,Category、Protocol和Block几个概念要了解下,一两天就差不多了,开发过程中逐渐适应就顺手起来了。

这中间很大一部分时间,是在琢磨交互的设计,自己那段时间对交互设计也比较感兴趣。下载了大部分流行的Todo App来研究,重点考虑了自己的单手操作习惯,这也是后来能进APP Store推荐榜最主要的原因。

动手前,考虑过一个问题,就是StoryBoard,XIB和纯代码UI,选择哪种方式。看了几篇博文,也想到StoryBoard是苹果目前主推,就直接StoryBoard了。

从UITableView开始搞起,先整出来一个最简单的Todo的列表。发现没有checkbox控件,就搞了个基于图片的实现,学会了怎么基于StoryBoard来搞自定义的UTTabelViewCell。

接下来导航进入一个具体Todo需要Navigation Controller了,中间尝试了几种View Controller之间传数据和返回数据的几种方式。通过Delegate,通过Notification Center,写Segue相关的回调实现,在StoryBoard中设置,直接API调用,等等,多试几种方式以及相关的组合,基本对视图怎么跳过来跳过去的就了然于心了。然后学微信的样子搞了个Tab View Controller把几部分内容装起来。

花时间最多的是手势的操作,参考一些APP的之后,自己设计了一套操作手势。读官方文档,基本把UIGestureRecognizer搞明白了。然后上Github去找与我想法类似的库,没有特别符合要求的。后来自己参考了一个开源库代码,做了大量修改,实现了想要的手势操作。在过程中,对手势操作以及OC语言本身都掌握得比较熟练了。

数据存储是Core Data,看Standford教程,读文档,业务模型很简单,在StoryBoard中可视化地拉了两张表,基本就搞定了。

比较坑的是NSFetchedResultController,因为Todo的拖动、排序和编辑等操作和Table View默认的操作是完全不同的,各种错误,StackOverflow上的帖子翻遍了,搞了几天解决不了,遂放弃,自己封装了一层跟Table View交互的数据层

尝试了加一些小的动画效果,比如Todo更新后闪动一下之类的,UIAnimation就够了。然后用NSUserDefault保存一些细节信息,这些信息对于交互上的一些小改进其实很有作用。然后是调整一下代码细节,优化一些View的显示。

然后做了代码重构,主要UITabelViewController,把MVC三部分代码做了更好得分离,也将一些公共抽象提取出来作为protocol,对代码设计基本就还算满意了。这段时间发现了

https://www.objc.io/

这个网站,很有帮助。

之后就是找了一个好朋友帮我画了一些图,做了icon,基本就算完工了。

第一次提交被拒了,因为app网址随便填了个我们学校的网站,太随意了。第二次改成老婆的微博地址,然后就通过了。从开始学习iOS开始,刚好一个月时间左右。

上线后几天就是打开itunes connect之后,突然发现用户增加了近万,发现竟然进了推荐榜,最高的时候一度在效率榜排进几,貌似12306的APP就排在我的旁边,不过过了一周就没落了,哈哈。

后来其实花了不少时间,要做第二版。增加了提醒,云端同步,即时通信,好友管理等一堆功能,大部分都做好了,都还有一些需要完善的地方,一直没有提交。因为做其他事情没有时间,暂时搁置了,等哪天有时间有心情的时候,再重新捡起来把。

后来为了写一个iOS教程,就用Swift开始重写这个APP,不过也半途而废了,没完全写完,而且Swift语言也更新不少,内容也应该需要一些更新。越来越感概木有时间编程了。有兴趣的同学可以看看:

iOS应用开发 | 天码营

已经写完的内容包括:

第1课

环境准备

第2课

Swift基础

第3课

Swift作业解析

第4课

UITableViewController

第5课

自定义的UITableViewCell

第6课

MVC

第7课

App的生命周期

第8课

协议的使用

第9课

理解可选类型

第10课

UIViewController和UINavigationController

第11课

Segue与数据传递

第12课

Unwind Segue

第13课

通知中心NSNotificationCenter

第14课

日期选择器UIDatePicker

第15课

XIB的使用

第16课

可选(Optional)协议

第17课

Core Data

第18课

NSFetchedResultController

第19课

细节优化的小技巧

第20课

UITabBarController

第21课

作业详解与回顾(1)

第22课

作业详解与回顾(2)

第23课

分页和UIActivityIndicatorView

第24课

UIGestureRecognizer


免责声明:本站所有内容及图片均采集来源于网络,并无商业使用,如若侵权请联系删除。

上一篇:北京市二级建造师执业资格注册程序简化了 审核后直接公告结果不珍惜**市场再次涨价,中方直接断绝合作:我国不是软柿子!

下一篇:IOS开发过程中会碰到的一些问题

资讯 观察行业视觉,用专业的角度,讲出你们的心声。
MORE

I NEED TO BUILD WEBSITE

我需要建站

*请认真填写需求信息,我们会在24小时内与您取得联系。