Skip to main content

Posts

(Code Coverage) Hướng dẫn thiết lập Code Coverage cho iOS

- Code coverage là gì? - Code coverage là cách kiểm tra những chức năng bạn đã làm có viết Unit Test hay chưa và đã viết qua những đoạn code nào rồi. Bạn có thể kiểm tra bằng mắt thường nhưng chỉ với 1 project nhỏ, vì thế thông qua Frankencover bạn có thể tạo những báo cáo của code coverage bằng những file html và có màu sắc cho từng dòng và phương thức để dễ dàng kiểm tra 1 cách nhanh chóng và dễ dàng. Ngoài cách này ra có nhiều cách khác bạn có thể tìm hiểu thêm trên mạng. Mình sẽ hướng dẫn cách cài Frankencover. Điều kiện trước khi đọc qua tài liệu này: - Bạn đã biết cách viết Unit Test cho iOS. - Biết những khái niệm về brew và gem trên hệ điều hành. Hướng dẫn cài brew xem tại đây . - Project có sẵn code và unit test. Project mình giả sử để làm ví dụ là có 1 hàm cộng 2 số là kiểu NSString, và có viết sẵn Unit Test, có thể tải project tại đây . Hướng dẫn cài fankencover để tạo code coverage trên local: * Bước 1- Cài đặt: Những đoạn script chạy cần cài đặt những tool như: groovy, lco...

Phân biệt những kiểu khai báo file #include, #import và @import trong Objective C (Có hình ảnh minh hoạ)

Trong ngôn ngữ lập trình Objective C, khi khởi tạo 1 đối tượng hệ thống sẽ thường sinh ra 2 file có đuôi khác nhau là file ".h" và file ".m". Vậy câu hỏi được đặt ra là khi ta khai báo file nên khái báo trong file .h hay file .m ? Chúng có sự khác biệt nào không? Hãy cùng mình phân tích sự khác biệt khi khai báo trong từng loại file. Ví dụ: Mình tạo 3 đối tượng có tên như: ObjectA, ObjectB, ObjectC. Trong ObjectA mình có dùng ObjectB, trong ObjectB mình có dùng ObjectC và trong ObjectC mình có dùng ObjectA. Những đối tượng này đều có thuộc tính là "name". - Trường hợp 1: Giả sử mình khai báo bằng #include trong những file .h. Như hình sau: Khi build thì XCode báo thành công, nhưng khi ta #include Object A trong file ViewController.h thì sau khi build XCode sẽ báo lỗi như: "fatal error: too many errors emitted, stopping now [-ferror-limit=]" Khi XCode báo lỗi này có nghĩa chúng ta đã khai báo những đối tượng này chồng lên nhau vì thế không thể n...

(Kinh nghiệm) Viết code ARC hay Non-ARC trên iOS

- Ai đã từng lập trình trên iOS trước iOS 5.0 đều phải tự quản lý bộ nhớ, đó là kiến trúc  Non-ARC. Nếu bạn quản lý bộ nhớ không tốt thì có thể crash app khi ứng dụng sử dụng nhiều memory quá và không bị huỷ đi. - Từ lúc Apple ra iOS 5.0 thì cũng ra 1 kiến trúc mới đó là  ARC . Theo lý thuyết ARC là hệ thống tự quản lý bộ nhớ khi bạn khởi tạo nó. Giống như trình quản lý bộ nhớ của Java (garbage collector). - Nhưng theo mình thì chúng ta nên quản lý bộ nhớ khi mình khởi tạo những đối tượng đó thì tốt nhất, tức là viết theo kiểu ARC giống Non-ARC . Bởi vì nếu để system toàn quyền quyết định thì ta không biết khi nào chúng bị huỷ đi, theo cảm giác của mình khi hệ thống cần bộ nhớ thì nó mới bị huỷ đi. - Ví dụ mình có 5 biến với 1 biến A là property, 1 biến B là toàn cục được khai báo trong file .h, 1 biến C là toàn cục được khai báo trong file .m, 1 biến D là local và 1 biến array. Một  vài lưu ý khi các bạn làm trên ARC nên chú ý là:  Khi bạn khởi tạo 1 biến to...

Hướng dẫn chạy location ở dưới background trên iOS 6.0 và iOS 7.0

Mình bỏ nhiều thời gian nghiên cứu về vấn đề này nên hôm nay xin chia sẻ những kinh nghiệm mà mình tích góp được về vấn đề xử lý location ở dưới background trên iOS 6 và iOS 7. Sau này ra iOS 8 hay 9 mình sẽ cập nhật lại sau ^^. Những thứ bạn cần nắm trước khi bắt đầu như: - Hiểu cơ chế, các dịch vụ để  lấy location, cách sử dụng dịch vụ đó? Bạn cần xem tại đây . Ở đây mình xin tóm tắt apple hỗ trợ chúng ta 2 dịch vụ để lấy location là "Standard Location Service" và "Significant Location Service". "Standard Location Service": Là dịch vụ chuẩn thông thường đề lấy location của system. Nếu dùng service này bạn có thể chỉnh theo tuỳ thích mà bạn muốn, ví dụ như: Luôn luôn cập nhật location, cập nhật location theo thời gian (Lưu ý: nếu bạn ở trạng thái background thì phải tuân thủ thời gian cho phép chạy timer đó, cái này mình sẽ đề cập ở phần sau.), cập nhật location khi đi xa 1 khoảng cách là bao nhiêu, ... "Significant Location Service": Là dịch vụ...

7 đặc điểm nổi bật cần có của một lập trình viên xuất sắc

Là một lập trình viên xuất sắc bao gồm nhiều yếu tố hội tụ chứ không phải chỉ giỏi viết code. Justin James đã liệt kê những đặc điểm nổi bật cần có của các lập trình viên để họ có thể bước vào hàng ngũ cấp cao trong nghề nghiệp của mình. Là một lập trình viên xuất sắc bao gồm nhiều nhiều yếu tố hội tụ chứ không phải chỉ giỏi viết code Để trở thành một lập trình viên xuất sắc, bạn cần phải có đầy đủ đặc điểm giúp cho kỹ năng, kinh nghiệm và kiến ​​thức của bạn kết hợp nhuần nhuyễn để làm việc. Có một số lập trình viên có trình độ cao để phát triển trong công việc nhưng họ sẽ không bao giờ thành công bởi thiếu những yếu tố cần thiết khác. Dưới đây là 7 đặc điểm nổi bật cần có để trở thành một lập trình viên xuất sắc: 1. Học kỹ năng “kỹ thuật mới” và “phi kỹ thuật” theo cách riêng của mình Lập trình viên kém chỉ học hỏi những điều khi nó hoàn toàn cần thiết. Lập trình viên giỏi học các kỹ năng “kỹ thuật mới” xuất hiện. Còn lập trình viên xuất sắc không chỉ học các kỹ năng “kỹ thuật mới” c...

(Căn bản) Bài 2: Hướng dẫn cài đặt XCode.

Có 2 cách bạn cài XCode: một là bạn cài thông qua AppStore trong máy, hai là bạn cài thông qua đường link để download về. Nếu bạn tải file này về thì có thể chia sẻ file này cho người khác. Đầu tiên bạn nhấn vào đường link đây . Nếu bạn chưa login tài khoản Apple ID, nó sẽ bắt bạn login xong rồi mới cho vào, sau khi bạn login xong sẽ hiển thị màn hình như sau: XCode phiên bản mới nhất là 4.6.3, bạn nhấn vào chữ màu xanh ở dưới để download về. Sau khi download về xong vì mình đang chay trên MacOS nên file cài của nó có đuôi đằng sau là ".dmg" khi download về xong bạn cứ nhấp vào 2 cái liên tiếp nó sẽ mở ra thư mục cài, bạn chỉ cần kéo icon của XCode vào trong thư mục Application là xong. Đây chính là cách cài những ứng dụng trên hệ điều hành Mac, rất ư là đơn giản. Nếu có gì không hiểu xin để lại comment. Chúc bạn thành công :).

(Căn bản) Bài 1: Hướng dẫn tạo tài khoản Apple ID và iTune không cần thẻ Visa hoặc MasterCard

Nếu bạn muốn lập trình trên iOs hoặc trên MacOs thì bạn nên có tài khoản Apple ID và tài khoản iTune. Sẽ hữa ích cho bạn khi cài đặt và nân cấp chương trình XCode. Nhưng khó khăn ở chỗ nếu bạn không có thẻ Visa hoặc Master Card, mà vẫn muốn có tài khoản để có thể cài ứng dụng trên AppStore. Sau đây mình xin hướng dẫn cách tạo tài khoản mà không cần những thẻ đó và có thể tạo tài khoản trên những store ở các nước khác. Đầu tiên bạn mở chương trình iTune lên và vào tab "App Store", sau đó bạn kiếm chương trình nào Free và nhấn vào đó nó sẽ hiển thị ra màn hình như sau:    Khi đang ở màn hình này bạn nhấn vào chữ "Free" bên dưới hình sẽ hiển thị ô cho bạn nhập Apple ID và Password.Vì bạn chưa có nên hãy nhấn vào nút "Create Apple ID" để tạo tài khoản. Sau khi bạn nhấn vào nút "Create Apple ID" bạn sẽ qua màn hình như bên dưới. Tại đây bạn có thể chuyển AppStore của các nước (Vì có những chương trình chỉ cài được trên từng AppStore mỗi nước thôi) hi...