100 ngày với Swift

528

Mặc dù xuất phát điểm không phải là lập trình viên, tôi vẫn thử theo đuổi Swift – một ngôn ngữ mới mà Apple giới thiệu cho các sản phẩm của mình. Và cách đây 1 tháng, tôi đã hoàn thành dự án 100 ngày với Swift của mình.

Tham khảo tất cả các dự án của tôi tại đây:  samvlu.com

Dự án 01: Tap Counter

Bạn cần bao nhiêu kinh nghiệm lập trình trước khi đụng đến Swift?

Ngắn ngọn thì: Không quá nhiều.

Dài dòng thì: Background của tôi là Motion Graphics & lập trình Web (tôi tự học). Tôi biết HTML, CSS, Sass, Javascript, jQuery, 1 vài thứ trong Ruby & Python, nhưng vẫn chưa lập trình 1 ứng dụng nào trước đây. Mặc dù tôi thành thạo nhất là HTML và CSS, nhưng 1 người bạn là programmer đã thuyết phục tôi rằng đó chỉ là những scripting languages (ngôn ngữ lập trình kịch bản), được dùng để mô tả và style content. Nhưng programming không chỉ có thế. Mặc dù HTML và CSS không phải là ngôn ngữ lập trình, nhưng chúng vẫn giúp tôi làm quen với việc nhìn code và debug lỗi.

Dự án 10: Pull to Refresh

Swift có dễ học không?

Dễ, syntax của Swift rất dễ học. Apple cũng đã thiết kế ngôn ngữ rất tốt, đồng thời cho ra mắt 1 quyển sách hướng dẫn chi tiết. Nhưng Swift chỉ là 1 mảng nhỏ của trò chơi xếp hình lớn. Trước khi tôi có thể lập trình ứng dụng đầu tiên, tôi phải học:

  1. Swift
  2. Xcode
  3. Các concepts programming
  4. iOS Frameworks
Dự án 18: Dynamic Data

Nguồn học Swift tốt?

Tôi đã học và đọc mọi thứ mà tôi tìm thấy về Swift, đặc biệt là các tài liệu liên quan đến concepts programming như Object-Oriented Programming và MVC Architecture. Với tôi, việc học lập trình quan trọng hơn so với việc học Swift syntax. Tôi sẽ đề cập phần này chi tiết hơn ở chuyên mục sau.

Dưới đây là 1 số nguồn hay để học Swift:

  1. The Swift Programming Language của Apple (miễn phí): Sách này nói về syntax. Các bạn thích dùng trình duyệt Web cũng có thể xem online
  2. Developing iOS 9 Apps with Swift của Stanford (miễn phí): Khóa học trên iTunes U của diễn giả Paul Hegarty – từng làm việc tại NeXT với Steve Jobs. Anh sẽ hướng dẫn cách lập trình 1 vài ứng dụng với Swift.
  3. Ray Wenderlich (miễn phí/ tốn phí/ đăng kí): Trang web này có 1 đội ngũ tài năng viết các tutorials với nhiều cấp độ lập trình. Những tài liệu miễn phí ở đây là quá đủ với 1 người mới bắt đầu. Ngoài ra còn có sách và tutorials dành riêng cho những người đăng kí
  4. Design+Code của Meng To (tốn phí): Có rất nhiều tư liệu trong quyển sách này, hướng dẫn cách lập trình 1 ứng dụng ngay từ ban đầu với Xcode, Sketch, Swift, Spring Animation Library… Tác giả thường cập nhật sách với các tư liệu mới mà không tính phí những người đã thanh toán trước đó
  5. Swift By Example của Brett Bukowski (miễn phí): Trang web giúp bạn học Swift Syntax thông qua những diễn giải code theo từng khung hình đơn giản

Những nguồn mới:

  1. 100 Days of Swift: The Tutorials (tốn phí): Sau khi hoàn thành dự án này, tôi đã tạo những video hướng dẫn riêng dựa trên chính hành trình mà bản thân trải qua. Tôi sẽ đề cập đến 1 số nội dung quan trọng về cách sử dụng Xcode, Code Snippet Library và iOS Simulator. Bạn cũng sẽ có 1 nền tảng vững chắc về Swift, Programming Concepts và iOS Development
Dự án 35: Tạo lại ứng dụng iOS Mic Animation của Google with Core Animation

Có thật là học programming quan trọng hơn học Swift syntax không?

Đúng.

Tôi đã dành rất nhiều thời gian để cố gắng xây dựng mọi thứ, đặt ra những câu hỏi xung quanh cách vận hành của chúng. Tôi vẫn nhớ khoảnh khắc programming xuất hiện trong tâm trí mình là lúc tôi sử dụng công cụ prototyping, Framer. Cuối cùng tôi cũng hiểu được cách mọi thứ vận hành dù điều này thực sự không liên quan gì đến Swift. Framer được xây dựng trên ý tưởng hình tượng hóa interactive code ngay lập tức – 1 ý tưởng mà Bret Victore giới thiệu trong bài nói chuyện “Inventing on Principle”. Sử dụng Framer giúp tôi có được cái nhìn chung về cấu trúc code.

  1. Tại sao lại viết 1 hàm nào đó?
  2. Tôi có tạo làm gì với loop?
  3. Trường hợp nào thì sử dụng 1 if statement?
  4. Và nhiều thứ khác nữa

Framer trả lời cho tôi tất cả những câu hỏi đó 1 cách trực quan, giúp tôi thấm nhuần những kiến thức cơ bản về cách sử dụng code để lập trình. Tôi có thể thực hiện những thay đổi nhỏ trong code và thấy ngay hiệu quả tức thì. Tất nhiên tôi không nói rằng nếu học Framer, bạn có thể lập trình được các ứng dụng iOS. Tôi đang nói rằng Framer hướng dẫn chúng ta cách nghĩ đúng để lập trình iOS dễ dàng hơn. Apple có công cụ interactive riêng của mình là Playgrounds được xây dựng ngay trong Xcode. Cả 2 công cụ Framer & Xcode đều rất tuyệt.

Dự án 38: Các transitions tương tác (artwork của Zesty Does Things)

Lời cuối

Khi bắt đầu dự án này, tôi đã nghĩ mình sẽ hoàn thành được 100 dự án, nhưng cuối cùng chỉ có 40 dự án. Nguyên nhân là vì tôi vừa học vừa lập trình cùng 1 lúc. Hầu hết các dự án phải mất vài ngày mới hoàn tất và tôi mừng rằng mình có thể làm được điều này. Sự ngưỡng mộ của tôi dành cho các lập trình viên phần mềm cũng nâng lên 1 tầm mới.

Tham khảo tất cả dự án của tôi tại  samvlu.com

Dự án 31: Custom Search Results
(dựa trên thiết kế của ứng dụng iOS Trailer của Apple)
Nguồn: IDE Academy via Medium