Bài viết được sự cho phép của tác giả Lê Xuân Quỳnh Xin chào! Trong bài hôm trước chúng ta đã viết xong lớp base để xử lý realm database rồi. Và bài hôm nay chúng ta sẽ tiến hành viết các service kế thừa từ lớp này để sử dụng realm database 1 cách linh hoạt. Lớp RealmGithubService của chúng ta sẽ có nhiều vụ sau: Lưu trữ kết quả từ server trả về, cụ thể model GithubSearchResponse Vì với mỗi keyword sẽ có 1 response khác nhau, đồng thời mỗi keyword này tùy vào số page gửi lên mà 1 kết quả khác nhau. Do vậy chúng ta cần lưu response này với khóa chính kết hợp giữa keyword và page Lấy response đã lưu dựa vào keyword đã search và page tương ứng Xóa hay update response Xóa toàn bộ response [irp posts="2391" name="3 sai lầm các iOS Developers thường mắc phải"] [irp posts="1489" name="5 bài học quí giá về việc phát triển ứng dụng iOS"] Từ những phân tích trên, chúng ta tiế [...]
Read more →Bài viết được sự cho phép của tác giả Lê Xuân Quỳnh Hello mọi người! Trong bài hôm nay chúng ta sẽ phát triển ứng dụng lên một tầm cao mới. Đó là có thể sử dụng ứng dụng offline được. Không cần mạng internet, chúng ta vẫn có thể truy cập dữ liệu đã tải trước đó. Như các bạn thấy, một số ứng dụng tiêu biểu cho việc này là facebook. Khi bạn tắt mạng đi, thì nó vẫn có thể đăng bài, tải các bài trên feed đã lưu trước đó. Trông cũng khá ổn, nó tăng tính trải nghiệm người dùng hơn, chuyên nghiệp hơn đúng không nào? Xem thêm Tuyển ios, việc làm swift, việc làm database hấp dẫn trên TopDev Vậy thì, hôm nay chúng ta làm điều đó, bằng 1 framework cho database, khá chuyên nghiệp đó là Realm. Vậy realm là gì? Có thể bằng vài câu thì không nói hết được các tiện ích mà framework này mang [...]
Read more →Bài viết được sự cho phép của tác giả Lê Xuân Quỳnh Hello guys! Lại là mình đây Trong bài trước, chúng ta đã học cách viết 1 lớp network layer rất chuyên nghiệp để call API, clear và simple. Hôm nay chúng ta sẽ tinh chỉnh cho app chuyên nghiệp hơn. [irp posts="37371" name="Lập trình IOS: Làm sao để viết code swift đúng chuẩn thế giới?"] [irp posts="1489" name="5 bài học quí giá về việc phát triển ứng dụng iOS"] Thêm indicator và search more Vậy chúng ta sẽ làm gì hôm nay: Thêm phần loading cho search Sửa API theo ducument Thêm phần load more khi scroll table view OKey, vậy chúng ta hãy cùng bắt đầu nhé. Đầu tiên như các bài trước bạn hãy checkout source code tại đây: https://github.com/codetoanbug/MVVMSample.git Vui lòng đọc cách chuyển sang branch bai3 dựa vào các bài trước để xem code nhé. Hãy cùng bắt đầu nhé Thêm phần loading cho search Như các bạn thấy, thì các mục search trên cá [...]
Read more →Bài viết được sự cho phép của tác giả Lê Xuân Quỳnh Hello guys! Trong bài trước chúng ta đã hiển thị 1 danh sách động vật theo mô hình MVVM rất đơn giản. Trong bài này, chúng ta sẽ nâng độ khó lên bằng cách request data từ server thật, cụ thể là server của github. Và bài này tôi sẽ viết 1 lớp layer cho network mà bạn có thể bưng vào project của bạn luôn. [irp posts="1489" name="5 bài học quí giá về việc phát triển ứng dụng iOS"] [irp posts="6487" name="Cách làm một ứng dụng Chat cho Android & iOS bằng Contus Fly như thế nào?"] Lần này chúng ta sẽ hiển thị danh sách các Repositories – các source code của Github và hiển thị lên app của mình. Hình ảnh như sau: Danh sách repositories từ github server Nhấp 1 ngụm cà phê và vào việc nào Đầu tiên source code vẫn là link bài 1: https://github.com/codetoanbug/MVVMSample.git Tuy nhiên tôi khuyên bạn chơi với terminal của MacBook cho [...]
Read more →Bài viết được sự cho phép của tác giả Lê Xuân Quỳnh Hôm nay chúng ta sẽ làm 1 ứng dụng nho nhỏ, hiển thị danh sách các loại động vật, như hình ảnh: Danh sách các loại động vật Đầu tiên là tải source code của tôi tại đây: https://github.com/codetoanbug/MVVMSample Tôi hướng dẫn các bạn tải code về bằng git 1 xíu nhé. Là git command line nha các bạn. [irp posts="38163" name="Rx-MVVM(1): Cấu trúc project – lib manager"] [irp posts="37970" name="Rx-MVVM(2): Cấu trúc project – quản lý thư viện sử dụng trong dự án"] Đầu tiên là bạn mở terminal và gõ: git clone https://github.com/codetoanbug/MVVMSample.git Sau đó bạn cd vào thư mục code MVVMSample. Mẹo là gõ cd MV, nhấn nút tab trên bàn phím nó cũng ra lệnh như sau: cd MVVMSample Tiếp theo gõ để show toàn bộ branch: git branch -a Bạn sẽ thấy branch master, bai1… Mỗi branch sẽ chứa code của 1 bài. Ở đây ta chỉ quan tâm code bài 1 nên bạn cần chuyển qua code của bà [...]
Read more →Bài viết được sự cho phép của tác giả Lê Xuân Quỳnh Vậy là bạn đã đọc qua về phần detail của khóa học rồi đúng không? Nếu chưa hãy đọc nó tại menu lập trình IOS nhé. Dù sao, chúng ta nên nhắc lại mục đích của hàng loạt bài viết liên quan tới Rx và MVVM trước. Để chúng ta biết chúng ta sẽ đạt được gì sau khi học. [irp posts="2418" name="12 Packages và Libraries của Go cực kì mạnh mẽ mà bạn cần phải biết"] [irp posts="2509" name="67 tools, libraries và resources giúp Web developer dễ thở" hơn"] Cây thư mục project Hãy xem tác giả đã bố trí như nào. Thư mục Application Thư mục Common Thư mục Configs Thư mục Extensions Thư mục Managers Thư mục Models Thư mục Modules Thư mục Networking Thư mục Third Party Thư mục Resources Vậy là có tổng 10 thư mục. Chúng ta hãy tìm hiểu lần lượt từng thư mục nhé 1. Thư mục Application Thư mục này có 3 file: File AppDelegate.swift: Hãy để ý dò [...]
Read more →Bài viết được sự cho phép của tác giả Lê Xuân Quỳnh Có thể bạn đã sử dụng nhiều library trong dự án IOS của mình. Vậy thường thì bạn có tạo lớp để quản lý cho dễ không? Thực tế mình cũng ít khi làm việc này, chỉ trừ mấy thư viện lớn như request server thôi. Hôm nay chúng ta sẽ học được 1 cách quản lý thư viện mà theo mình đánh giá là ổn, khá logic, clear và đáng học hỏi. Nào cũng ta cùng bắt đầu nhé! [irp posts="31527" name="6 project vui dành cho dev build khi chán"] [irp posts="14654" name="9 CSS animation mới mãn nhãn" cho các project"] Xem thêm Việc làm Project manager hấp dẫn trên TopDev AnalyticsManager Trong file này tác giả sử dụng 2 thư viện Mixpanel và FirebaseAnalytics. Thư viện Mixpanel: https://github.com/mixpanel/mixpanel-iphone Phần Readme đã mô tả rất rõ cách cài đặt, các bạn đọc và tạo thử 1 project để cài nhé. Mình nghĩ dùng pod để cài là đơn giản nhất. Chức năng: Cung cấp event tracking [...]
Read more →