Lập trình di động với Ionic - Có nên không?
Bài viết đánh giá framework Ionic cho phát triển ứng dụng di động đa nền tảng, phân tích ưu điểm như mã nguồn mở, tài liệu dễ hiểu, component đầy đủ và hệ sinh thái phong phú. Tác giả so sánh Ionic với React Native và chia sẻ kinh nghiệm thực tế khi sử dụng framework này.

Ionic là cái chi?
Chắc nói Ionic ra, hem ai biết. Vậy nó là gì?
_ - > Nhìn tiêu đề là biết rồi, dùng Ionic để lập trình di động chứ chi. Dễ ẹc vậy cũng hỏi._
Thực ra mình biết nó từ 2 năm trước. Từ lúc mình tìm framework để mần cái Gia Sư Việt. Lúc đó nó còn Ionic1 khá sida nên mình cũng không đụng vô làm gì.
Dạo gần đây có tìm hiểu React Native mà cảm thấy không hợp lắm nên qua thử Ionic xem sao.
Theo thuật ngữ chuyên môn, Ionic thuộc nhánh mần áp (app) di động với HTML5, CSS, Javascript. Trong nhánh này còn có Sencha Touch, PhoneGap,vv. Sau nhiều đêm trăn trở, tới bữa quên ăn, nửa đêm vỗ gối tìm tòi Ionic. Mình thấy nó đang là " best HTML5 mobile framework " . Dưới đây là những lý do tại sao
Tại vì nó miễn phí và Open Source
Thử nhìn qua repository của Ionic trên Giuhub xem nào:
Thử so sánh với React Native thì thấy Ionic hem lại rồi. Nhưng nhìn chung cái gì mà open source lại được đông anh hùng hội tụ thì khá là có tương lai.
Component đầy đủ - Docs dễ hiểu.
Ionic2 sử dụng Angular2 làm nền tảng để xây dựng các component. Đại khái component giống như controls: Button, Image, List, Picker, MapView vv.
Ionic đã tích hợp nhiều component để dev có thể mần app nhanh. Trang docs của Ionic khá trực quan và dễ hiểu. Bên trái là code, bên phải là live preview của component đó. Anh em có thể lên xem, dù không có kiến thức về HTML, CSS, Angular2 gì ráo, đọc vô là hiểu liền. Còn làm được không thì hổng biết!
Giống như ở trên hình là một Floating Action Buttons được build sẵn trong Ionic. Dev chỉ việc lấy ra xài thôi. Còn ai muốn tạo custom control cũng được luôn
App khá native
Cái này theo cảm nhận của mình thôi, chứ cũng chưa kiểm tra performance. Ngoại trừ cái MapView, chưa có native được. Nếu nhìn bằng mắt thường thì UI từ Ionic app giống native app chứ không phải kiểu hybrid app như PhoneGap hồi xưa.
Ngoài ra trong Ionic cũng gọi được mấy nativeAPI như camera, GPS, contacts với ngCordova. ngCordova kiểu như cài plugin cho wordpress vậy, cài vô rồi mới gọi được native API.
Nhiều tool hỗ trợ
Ionic miễn phí nên mô hình kinh doanh của họ là cung cấp các dịch vụ trả phí thêm cho dev. Từ desgin UI đến database, push notification đến analytics. Kiểu như cung cấp, phục vụ tận giường vậy, không thiếu thứ gì.
Ionic Playground: Hỗ trợ người mới code thử ngay với Ionic
Ionic Creator: Hỗ trợ desgin UI kéo thả, import sang file hoặc code trực tiếp trên nền web
Ionic Lab: Hỗ trợ User management, push. Kiểu fake Firebase
Inoic View: Tính năng này là live preview app bạn đang phát triển. Ví dụ bạn làm được tính năng A, bạn đưa cho khách hàng xem thì chỉ cần bảo khách tải cái app Ionic View trên Appstore/Google Play. Sau đó nhập ID của project vô là ông khách có thể xem được. Tính năng này phù hợp để làm freelancer, đưa cho khách xem để nhận feedbacks liên tục
Ionic cũng đang phát triển một backend riêng giống Firebase.
Showcase
Bạn có thể xem qua một số app nổi tiếng được phát triển bởi Ionic tại showcase.
Có nên theo không
Trong một tuần học Ionic trên Udemy mình cũng đã hiểu được kiến trúc, cách hoạt động của Ionic. Cũng có làm một app nhỏ:
Link project trên Github, bạn có thể tải về tham khảo. [Link khóa học](http://Hi, mình học khóa này, anh này dạy dễ hiểu, support tận tình nữa: https://www.udemy.com/ionic-2-the-practical-guide-to-building-ios-android-apps) cho bạn nào cần.
Theo quan điểm của mình, Ionic còn phát triển nữa. Còn việc có nên học, nên theo hay không lại khác.
Đối với những bạn đã biết web, Angluar2, Javascript (Typescript), HTML, CSS rồi thì nên thử coi có hợp hay không rồi chiến tiếp.
Còn với những người bắt đầu từ native app như mình, tiếp cận Ionic khá mệt. Dù nó có tốt cỡ nào cũng thấy sida sao sao đó. Thà học luôn Android+IOS còn khỏe hơn.
Còn ý bạn thế nào? Cùng comment nhé!
Related Posts
Discover more content you might enjoy

Nên dùng struct hay class trong Swift phần 1
Bài viết phân tích sự khác biệt giữa struct và class trong Swift, giải thích về References Type và Values Type với các ví dụ cụ thể. Đây là phần đầu tiên trong loạt bài hướng dẫn lập trình viên Swift cách lựa chọn giữa struct và class cho từng trường hợp sử dụng.

Lập trình IOS Swift 3 + Xcode 8 Sơn Tùng MTP Playlist App
Hướng dẫn lập trình iOS cơ bản thông qua việc xây dựng ứng dụng playlist nhạc Sơn Tùng MTP với Swift 3 và Xcode 8. Bài viết bao gồm các kỹ thuật Autolayout, TableView, Data modeling, mô hình MVC và cách sử dụng segue, phù hợp cho người đã có kiến thức cơ bản về Swift và Xcode.

Game Theory trong thời đại AI: Khi máy móc tham gia vào "trò chơi"
Bài viết phân tích sự giao thoa giữa lý thuyết trò chơi (Game Theory) và trí tuệ nhân tạo, giải thích cách AI đang thay đổi các nguyên lý cân bằng Nash và chiến lược tối ưu. Tác giả đưa ra các ví dụ thực tế về ứng dụng trong kinh doanh, giao thông và an ninh mạng.

Bài này không phải AI viết
Suy ngẫm chân thành về giá trị của việc viết thủ công trong kỷ nguyên AI. Dù AI có thể tạo nội dung hiệu quả, bài viết này là lời khẳng định về sự kết nối cá nhân và giá trị độc đáo mà con người mang lại cho văn bản của mình.

Moonwalking with Einstein
Đánh giá sách 'Moonwalking with Einstein' của Joshua Foer - hành trình khám phá nghệ thuật và khoa học của việc ghi nhớ, từ góc nhìn của một nhà báo tham gia vào cuộc thi USA Memory Championship.

Dạy học trên Udemy
Chia sẻ trải nghiệm 3 năm dạy học trên Udemy với con số ấn tượng 357.093 phút học viên xem video (tương đương 250 ngày). Bài viết phản ánh những lợi ích từ việc tạo khóa học online như phát triển kỹ năng soạn giáo án, marketing, quay và chỉnh sửa video, thuyết trình và bán hàng.