Ever since the introduction of iOS, there is iOS development fever across the globe. Many iOS developers & companies are making fortunate out of it. By using Objective-C and Apple homebrew XCode SDK, there are more than 1 million apps in Appstore now! Apple didn’t stop there, they are going to push it to another level by introducing a new high level programming language – Swift. Objective-C without the baggage of C is how Craig Federighi described it during the conference.

Swift is designed to be fast, modern, safe and interactive. Even though it is a high level programming language, its speed is much more faster than Objective-C. You can mix it with Objective-C and C altogether in a project too (Not a good idea though!).

Honestly, I was pretty excited about Swift. I wanted to dive into iOS development, but as a web developer for half of my life, it isn’t easy for me to get into programming with low-level language. So, this announcement is actually quite an exciting news to me. I started to find resources about it and even started to learn how to use XCode. I decided to start from basic of Objective-C so I’ll know the differences. It was a painful process. Objective-C has been serving Apple well for 20+ years, and I must say, it is not a friendly language at all.

As a PHP developer, I found Objective-C is a beast, very steep learning curve and a lot of weird and repetitive coding. To cut it short, it’s indeed a low-level language, too low to my liking. My motive to learn the basic of Objective-C is to know the native solution first before moving on to high level. Just like how we start by learning Javascript first before moving on to jQuery.

Swift does a lot behind the scene to eliminate all those inconveniences and tedious practives of Objective-C. As a result of that, Objective-C codes are being simplified into shorter code and easier to understand. Take the following code illustrated during the conference as example:

Objective-C

if (myDelegate != nil) {
if ([myDelegate respondsToSelector: @selector(scrollViewDidScroll:)]) {
[myDelegate scrollViewDidScroll:myScrollView];
}
}

Swift

myDelegate?.scrollViewDidScroll?(myScrollView)

Variable assignment is almost the same with Javascript except they eliminate the needs of semicolon. Comparing to Objective-C, it’s just painful to write. Here is the declaration of String type variable.

Objective-C

NSString *myString = @"This is my string.";

Swift

var myString = "This is my string."

Are you getting excited yet? During the my own research and learning, I found a good collection of useful resources about Swift. If you started to learn it just like I do, this list will be very handy. But first of all, you need the SDK. Swift is only available in XCode 6 Beta which only available for those with Apple Developer account, but if you search around *ahem*, you will able to download it elsewhere.

Here you go, below is a list of resources, you will get written tutorials, video tutorials, references, sample codes and swift community. Drop me a commnet if you discovered something useful. Enjoy!

Introduction

Tutorial Series #1

A simple and short tutorial created by Fábio Rocha.

Tutorial Series #2

A comprehensive Swift tutorial created by James Quave. This 6 parts tutorials focus on created iOS app. You will learn from basic to advanced techniques such as web API request, Parsing JSON, Table View, Async image loading & caching, interaction with multiple views and best practices.

Tutorial Series #3

This tutorial will walk you through the creation of a geolocation based alarm app for travelers. The concept is simple: users create a new alarm by selecting both a geographic region and music item from their library. When the phone detects itself crossing the region boundary of an alarm (enter or exit) the relevant music plays.

Tutorial Series #4

We Heart Swift is a new website dedicated for Swift programming. They are going to be covering cool stuff they found.

Video tutorials

Sample Code

Sometimes, the quickest way to pick up a language is to learn by sample. Here we have a list of Swift Applications that you can download and study it.

Quick References

Swift Community

Swift Development – List of Resources You Must Bookmark的更多相关文章

  1. open source Swift, Objective-C and the next 20 years of development

    Q&AApple's Craig Federighi talks open source Swift, Objective-C and the next 20 years of develop ...

  2. Awesome Swift

    Awesome Swift https://github.com/matteocrippa/awesome-swift A collaborative list of awesome Swift re ...

  3. The Swift.org Blog welcome欢迎页note

    The Swift.org Blog Welcomehtml, body {overflow-x: initial !important;}html { font-size: 14px; } body ...

  4. Swift is Open Source 博客note

    Swift is Open Sourcehtml, body {overflow-x: initial !important;}html { font-size: 14px; } body { mar ...

  5. Swift搭建服务端

    原文:Hello Server Side Swift 作者:Logan Wright 译者:CocoaChina--kmyhy(博客) 自从苹果官方发布了一个 Swift 的 Linux 开源版本之后 ...

  6. swift闭包 notes http://www.gittielabs.com

    Swift Closureshtml, body {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeMirror- ...

  7. swift.org - About Swift 官网关于notes

    About Swifthtml, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0px; ...

  8. cong

    Directions:  Study the following cartoon carefully and write an essay in which you should 1) descr ...

  9. 学习 Linux,101: 使用基本 SQL 命令

    概述 在本教程中,将学习结构化查询语言 (SQL),包括: 使用基本 SQL 命令 执行基本数据操作 本教程将简要介绍您需要知道的与 LPI 102 考试相关的 SQL 概念.   回页首 数据库和 ...

随机推荐

  1. VS中工程的“依赖”,“库目录”,“包含目录”

    写多了Vs中的工程,就会遇到很多环境配置问题,例如“依赖项”,“库目录”,“包含目录”等等等等. 今天要记录的就是这些的基本含义:我们拿一个例子来看,更加清晰易懂一些: 例如在Opencv3.0+VS ...

  2. notepad++常用操作梳理

    在  设置---管理快捷键   可以查询/重置快捷键.如下: 工作or学习中最长用到的操作: Ctrl+ALT-C:列编辑Ctrl+U:转换为小写Ctrl+Shift+U:转换为大写Ctrl+B:跳转 ...

  3. Oracle数据库学习(二):Oracle Linux下oracle、ogg的挂载与参数配置

    准备工作:打开虚拟机端的Oracle Linux Server 6.9的系统,然后使用root用户登录.打开终端界面,输入ifconfig -a查看IP地址. 然后在本地打开XShell软件使用以下命 ...

  4. python学习,day4:装饰器的使用示例

    ---恢复内容开始--- 装饰器:本质是函数,(装饰其他函数)就是为其他函数添加附加功能 装饰器有其独特的原则:1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 例子 import ...

  5. ECharts-入门学习

    最近因项目需要要做图表,后台数据要以柱状图的形式展示,通过上网查找,感觉ECharts这个js控件挺不错的,下面就把入门知识搞一下. 一.下载ECharts控件. 地址:http://echarts. ...

  6. Apache无法启动报错查看

    wampserver橙色图标 查找原因 1.测试80端口 . 如已被占用,则改别的端口在启动apache.怎么改apache的的端口去百度一下都有. 2.找到httpd.exe的目录.在cmd命令行下 ...

  7. com.alibaba.dubbo.rpc.RpcException: Failed to invoke remote method解决方法

    报错日记: Caused by: com.alibaba.dubbo.rpc.RpcException: Failed to invoke remote method: getUserAuthLeve ...

  8. InnoDB的B+树索引

    B+树索引其本质就是B+树在数据库中的实现,但是B+索引在数据库中有一个特点就是其高扇出性,因此在数据库中,B+树的高度一般都在2-3层,也就是对于查找某一键值的行记录,最多只需要2到3次IO,这倒不 ...

  9. Java接口的简单理解和总结

    1.抽象层次:普通类 -> 抽象类 -> 接口 普通类:就是我们常用的类: 抽象类:专门用来被子类继承的,主要是为了符合现实世界的规律 如: Animal类:(每个现实的对象都有类与它相对 ...

  10. String类的substring方法

    下列程序的输出是什么? class A { public static void main(String[] a) {     String v = “base”;      v.concat(“ba ...