0
Blog

Lộ trình học lập trình mobile development

22/07/2020

Lần này chúng tôi sẽ tập trung vào lộ trình học lập trình mobile. Lĩnh vực phát triển này đã tăng lên khi số lượng người dùng di động tăng theo cấp số nhân mỗi năm. Nhiều ứng dụng đã được phát triển để hỗ trợ người dùng trong các nhiệm vụ khác nhau.

86-lo trnh hoc mobile

Ngay cả các ứng dụng như Whatsapp, Facebook và Gmail đã trở thành một phần không thể thiếu trong cuộc sống của chúng tôi ngay cả khi chúng tôi không nhận ra điều đó.

3 lộ trình học lập trình mobile cho bạn lựa chọn

86-3 con duong

Câu hỏi đầu tiên bạn phải tự hỏi mình là, Tại sao tôi lại phát triển ứng dụng này? Trường hợp sử dụng của nó là gì?

Nếu bạn đang tập trung vào việc học lập trình mobile cho người dùng của một nền tảng duy nhất, thì cách hiệu quả nhất sẽ là phát triển bằng cách sử dụng các công nghệ có nguồn gốc từ nền tảng đó (chúng ta sẽ thảo luận sau).

Các ứng dụng cần nhiều quyền truy cập phần cứng sẽ phải được xây dựng riêng cho từng nền tảng. Ví dụ: nếu bạn đang cố gắng xây dựng một ứng dụng để quản lý việc sử dụng RAM của thiết bị, thì bạn sẽ phải phát triển độc lập cho từng nền tảng. Bạn sẽ không thể phát triển ứng dụng này bằng các công cụ phát triển đa nền tảng.

Nhưng nếu ứng dụng di động của bạn hoạt động như một giao diện cho người dùng cho các tác vụ không phụ thuộc vào phần cứng, thì bạn có thể sử dụng các công cụ phát triển đa nền tảng để đạt hiệu quả. Điều này sẽ giảm đáng kể tổng thời gian phát triển của bạn trong việc học lập trình mobile cho mỗi nền tảng.

Có hai loại công cụ để phát triển ứng dụng đa nền tảng: Ứng dụng Hybrid và Ứng dụng Native. Chúng tôi sẽ thảo luận về điều này sau.

Phát triển nền tảng đơn

lộ trình học lập trình mobile với single platform

lộ trình học lập trình mobile với single platform

Ở đây chúng ta sẽ nói về việc học lập trình mobile cho từng hệ điều hành di động bằng cách sử dụng các công cụ riêng của chúng.

Các hệ điều hành hàng đầu cho thiết bị di động là: Android, iOS và Windows Phone.

Có các Hệ điều hành khác như FireFox Mobile và Ubuntu Mobile OS, nhưng không ai trong số chúng nổi tiếng như ba người khổng lồ trước đây.

Theo IDC năm 2017, gần 83,4% người dùng di động là Android, 15,4% là iOS và 0,8% là Windows.

Do đó, người dùng Android chiếm lĩnh thị phần và hầu hết các lập trình viên học lập trình mobile cho nền tảng này. Hệ điều hành Android, là một hệ điều hành nguồn mở của Google thêm vào như một yếu tố tuyệt vời cho sự phát triển trong nền tảng này. Tuy nhiên, iOS của Apple nổi tiếng rộng rãi về tính ổn định và phần cứng chức năng tốt (chưa kể giá tăng vọt của chúng).

Android

86-android

Như tôi đã nói Android có cơ sở được cài đặt lớn nhất trong số các hệ điều hành di động và do đó, số lượng ứng dụng được phát triển cho Android vượt quá số còn lại. Android sử dụng nhân Linux với một số API cấp cao hơn, được viết bằng C.

Tuy nhiên, hầu hết các ứng dụng native được phát triển trong Android đều được lập trình bằng Java và chạy trên máy ảo Dalvik, sử dụng trình biên dịch just-in-time và ahead-of-time để dịch mã byte Java sang mã dex của Dalvik. Hầu hết các lập trình viên sử dụng Android Studio IDE của Google để phát triển ứng dụng của họ. Tuy nhiên, bạn cũng có thể sử dụng IDE Eclipse cho SDK Android.

Tuy nhiên, kể từ đầu năm 2017, có một xu hướng trong việc học lập trình mobile là sử dụng Kotlin để lập trình các ứng dụng Android. Đối với những người không biết Kotlin là gì, đây là ngôn ngữ lập trình chạy trên JVM (Máy ảo Java). Ngay cả Google cũng đang thúc giục các lập trình viên học lập trình mobile sử dụng Kotlin thay vì Java.

Đề xuất cá nhân của tôi: Tìm hiểu Kotlin nếu bạn muốn theo kịp xu hướng đang tăng hoặc sử dụng Java nếu bạn đang tìm kiếm các hướng dẫn mạnh mẽ.

Điện thoại di động iOS

86-ios

IOS của Apple là hệ điều hành lớn thứ 2 được sử dụng rộng rãi. Tuy nhiên, việc học lập trình mobile được thực hiện bằng SDK iOS (Bộ công cụ phát triển phần mềm) mà Apple cung cấp.

Bạn có thể sử dụng ngôn ngữ Swift hoặc Objective-C để học lập trình mobile iOS native trên XCODE IDE

Swift là một ngôn ngữ lập trình được phát triển bởi Apple dành riêng cho phát triển ứng dụng.

Một hạn chế lớn để phát triển ứng dụng iOS là bạn sẽ cần một thiết bị Apple Mac để biên dịch ứng dụng.

Điện thoại Windows

86-windows

Windows phone là hệ điều hành di động lớn thứ 3 được sử dụng rộng rãi. Tuy nhiên, Microsoft gần đây đã tuyên bố rằng họ sẽ không còn phát triển trên Windows Phone. Họ đã thay đổi chiến lược từ điện thoại di động đơn giản sang Surface Tablets cầm tay đang bằng cách nào đó trở nên phổ biến hơn.

Windows 10 mới nhất có một tính năng được gọi là Universal Windows Platform (UWP), định nghĩa một nền tảng cơ bản duy nhất cho tất cả các thiết bị hỗ trợ hệ điều hành. Do đó, chúng ta có thể học lập trình mobile hoạt động đồng thời trên PC, máy tính bảng, điện thoại và Xbox.

Windows cung cấp Windows SDK để phát triển ứng dụng Windows. Chúng tôi sử dụng XAML để thiết kế ứng dụng và lập trình nó bằng ngôn ngữ C# trong Visual Studio IDE.

Phát triển đa nền tảng

Nếu bạn đang có kế hoạch học lập trình mobile trên hai hoặc nhiều nền tảng, thì các công cụ phát triển đa nền tảng chắc chắn sẽ giúp bạn.

Hai loại kỹ thuật phát triển đa nền tảng là: Ứng dụng hybrid và Ứng dụng native

Tất cả các công cụ học lập trình mobile mà chúng ta sẽ thảo luận bây giờ sẽ yêu cầu SDK cụ thể cho nền tảng mà ứng dụng phải được biên dịch.

Việc biên dịch một ứng dụng cho iOS sẽ yêu cầu có một thiết bị Macbook.

Các công cụ học lập trình mobile cho ứng dụng hybrid thực sự được tạo ra để giúp các lập trình viên web hiện tại dễ dàng phát triển và triển khai các ứng dụng lên nền tảng di động. Phát triển ứng dụng hybrid thực sự đang được lập trình bằng HTML5 cho nền tảng di động.

Các ứng dụng hybrid được lập trình bằng HTML5, CSS và Javascript và được triển khai bằng một số trình bao bọc xung quanh nó cho mỗi HĐH di động.

Các ứng dụng hybrid được sử dụng rất nhiều cho các công ty và người khởi nghiệp, những người có ứng dụng web và muốn học lập trình mobile native. Các ứng dụng này không thể truy cập nhiều tính năng phần cứng của thiết bị nhưng có thể hoạt động như một giao diện người dùng dễ dàng. Hầu hết các công cụ phát triển ứng dụng hybrid chỉ áp đặt một số trình bao bọc xung quanh ứng dụng HTML5 mà lập trình viên xây dựng và triển khai nó lên các nền tảng di động.

Một ví dụ về ứng dụng Hybrid mà bạn có thể dễ dàng tìm thấy là ứng dụng di động của Amazon. Ứng dụng trong điện thoại của bạn chỉ là một trình bao bọc xung quanh ứng dụng HTML5 đằng sau nó.

Ứng dụng hybrid

Chúng ta hãy thảo luận về một số công cụ và framework được sử dụng để phát triển các ứng dụng Hybrid

Mô hình Hybrid Application

Mô hình Hybrid Application

Apache Cordova

Đây là một nền tảng mã nguồn mở và miễn phí để xây dựng các ứng dụng cho nhiều nền tảng di động với một cơ sở mã duy nhất

Bạn có thể học lập trình mobile bằng HTML, CSS và Javascript và sau đó triển khai nó lên Android, iOS, Windows, FirefoxOS và nhiều hơn nữa. Nó chắc chắn là lựa chọn hàng đầu cho các lập trình viên nếu bạn muốn xây dựng một ứng dụng hybrid. Ngoài ra còn có nhiều plugin và tiện ích mở rộng có sẵn sẽ giúp bạn truy cập một số tính năng phần cứng nhất định như Camera, Âm thanh, v.v. đến một mức độ nhất định. Adobe đã chia dự án này thành phiên bản của riêng mình, được gọi là PhoneGap.

Framework7

Framework7 – là một framework HTML di động mã nguồn mở và miễn phí để phát triển các ứng dụng di động hoặc ứng dụng web lai với giao diện gốc của iOS và Android. Nó cũng là một công cụ tạo prototype không thể thiếu để hiển thị nguyên mẫu ứng dụng hoạt động càng sớm càng tốt trong trường hợp bạn cần.

Framework7 thực sự là một framework để xây dựng một ứng dụng Hybrid trên đỉnh của Cordova. Ban đầu nó được tạo cho nền tảng iOS và do đó có thiên vị hơn đối với nó.

Ionic Framework

Ionic Framework là bộ công cụ phát triển phần mềm (SDK) miễn phí và nguồn mở để phát triển ứng dụng di động hybrid. Nó được phát triển dựa trên Angular.js và Apache Cordova và cung cấp cho các lập trình viên các công cụ và dịch vụ tiên tiến để phát triển ứng dụng bằng nhiều ngôn ngữ web khác nhau như HTML5, CSS và Sass.

Có nhiều tiện ích mở rộng có sẵn sẽ giúp bạn tận dụng Bluetooth, Camera, v.v.

jQuery Mobile

jQuery Mobile là một framework mạnh mẽ để phát triển các ứng dụng di động đa nền tảng. Nó hỗ trợ một loạt các nền tảng để phát triển ứng dụng như máy tính để bàn, điện thoại thông minh, máy tính bảng và thiết bị đọc sách điện tử như Kindle

jQuery là một framework dựa trên mô-đun, cho phép bạn tạo bao nhiêu bản dựng tùy chỉnh mà bạn cần

Onsen UI

Onsen UI là một framework khác cho phép bạn xây dựng các ứng dụng di động hybrid bằng cách sử dụng các framework javascript phổ biến như Angular.js, React.js và Vue.js.

Ứng dụng native

Native Application và học lập trình mobile cần học gì?

Native Application và học lập trình mobile cần học gì?

Chúng ta đã thấy một ứng dụng Hybrid là gì: Một ứng dụng web có lớp phủ trên nó. Tuy nhiên, có một phương pháp khác để tạo ứng dụng đa nền tảng.

Các công cụ biên dịch ứng dụng native giúp bạn học lập trình mobile của mình bằng một ngôn ngữ cụ thể và sau đó cung cấp các công cụ để bạn biên dịch ứng dụng qua các thành phần gốc cho mỗi nền tảng khác nhau.

Các ứng dụng được xây dựng bằng các công cụ này được tìm thấy có hiệu quả phần cứng cao hơn nhiều so với các ứng dụng hybrid vì nó sử dụng chính các thành phần gốc. Các ứng dụng hybrid đôi khi có thể tạo ra các lỗi khó chịu và không thể truy cập các tính năng phần cứng một cách hiệu quả.

Chúng tôi hãy thảo luận về một số công cụ và thư viện chính trong lĩnh vực này:

React Native

React-Native là một trong những framework phát triển ứng dụng đa nền tảng nổi tiếng nhất do Facebook tạo ra.

React Native cho phép bạn xây dựng các ứng dụng di động chỉ bằng JavaScript. Nó sử dụng thiết kế giống như React, cho phép bạn soạn một giao diện người dùng di động phong phú từ các thành phần khai báo.

Với React Native, bạn không xây dựng ứng dụng web trên điện thoại di động, một ứng dụng HTML5, hay ứng dụng hybrid HTML5. Bạn xây dựng một ứng dụng di động thực sự không thể phân biệt được với một ứng dụng được xây dựng bằng Objective-C hoặc Java. React Native sử dụng các khối xây dựng UI cơ bản giống như các ứng dụng iOS và Android thông thường. Bạn chỉ cần đặt các khối xây dựng đó lại với nhau bằng JavaScript và React.

Nếu bạn nhìn vào các ứng dụng được xây dựng bằng React-Native, bạn có thể thấy tiềm năng của nó. Một số trong số đó là Facebook, Instagram, Airbnb, Flipkart, và danh sách này tiếp tục nữa. Đây là một trong những framework nổi tiếng nhất và nhu cầu cho các lập trình viên cũng rất cao trong lĩnh vực này.

Xamarin

Xamarin cho phép bạn xây dựng các ứng dụng di động native cho Android, iOS và Windows bằng một cơ sở mã duy nhất.

Xamarin cho phép bạn xây dựng các ứng dụng native cho nhiều nền tảng trên một cơ sở mã C# được chia sẻ. Sử dụng cùng IDE, ngôn ngữ và API ở mọi nơi.

Xamarin cùng với SDK của nó cung cấp cho bạn các nguồn hướng dẫn riêng để bạn học hỏi. Gần đây, Xamarin được Microsoft mua lại. Xamarin là một lựa chọn thích hợp cho các lập trình viên muốn học lập trình mobile của họ bằng cách sử dụng C# làm cơ sở.

Một số ví dụ nổi tiếng về các ứng dụng được tạo bằng Xamarin là Pinterest, Slack, Bosch, v.v.

NativeScript

NativeScript là một nền tảng nguồn mở khác cho phép bạn biên dịch các ứng dụng di động native được xây dựng bằng Javascript. Theo trang web chính thức của họ,

NativeScript là cách bạn xây dựng các ứng dụng đa nền tảng, iOS và Android mà không cần xem web. Sử dụng Angular, TypeScript hoặc JavaScript hiện đại để có được hiệu suất và giao diện người dùng thực sự trong khi chia sẻ các kỹ năng và mã với web. Nhận 100% quyền truy cập vào API gốc thông qua JavaScript và sử dụng lại các gói từ NPM, CocoaPods và Gradle.

Nó chỉ vừa mới nổi tiếng trên mạng, nhưng không phổ biến như hai điều trước. Nó được ưa thích bởi các lập trình viên đã quen thuộc với Angular.js

Chú ý đặc biệt – dành cho lập trình viên trò chơi

Học lập trình mobile cho Game development

Học lập trình mobile cho Game development

Nếu bạn là lập trình viên trò chơi và muốn tạo trò chơi cho nền tảng di động, thì những công cụ này có thể không cung cấp giải pháp tốt nhất cho bạn.

Tôi có 2 đề xuất dành cho bạn:

Unity Game Engine:

Unity3D là một trong những Game Engine nổi tiếng nhất hiện có. Nếu bạn là một lập trình viên trò chơi, chắc chắn bạn biết những thứ này hoặc nếu bạn chưa quen với điều này, chắc chắn đây sẽ là cái tên đầu tiên bạn nghe đến.

Unity giúp bạn thiết kế, xây dựng và triển khai các trò chơi tương tác cao đến nhiều nền tảng với một cơ sở mã duy nhất. Bạn có thể lập trình logic trò chơi bằng Javascript, C# hoặc Golang.

Khi bạn phát triển trò chơi, nó cung cấp cho bạn tùy chọn để xuất trò chơi sang bất kỳ nền tảng nào bạn chỉ định. Nó có thể là Android, iOS, Windows phone, FirefoxOS, v.v … Nó thậm chí còn triển khai cùng một trò chơi với Windows PC hoặc Linux. Bạn cũng có thể xây dựng các ứng dụng thực tế ảo và thực tế ảo tăng cường bằng cách sử dụng nó. Có rất nhiều plugin và tiện ích mở rộng dành cho Unity có thể giúp bạn phát triển trò chơi của mình.

Nếu bạn nhìn vào danh sách các trò chơi được tạo bằng Unity, bạn sẽ ngạc nhiên.

Unreal Engine

Unreal Engine là một game engine nổi tiếng khác cung cấp cho bạn các tính năng tốt nhất. Theo trang web của họ,

Unreal engine là một bộ công cụ sáng tạo hoàn chỉnh được thiết kế để đáp ứng tầm nhìn nghệ thuật đầy tham vọng trong khi đủ linh hoạt để đảm bảo thành công cho các đội thuộc mọi quy mô.

Nó là một công cụ C++ hoàn chỉnh cho phép bạn phát triển và triển khai các trò chơi đến bất kỳ nền tảng nào mà bạn mong muốn.

Đã đến lúc kết thúc

86-ket luan

Phải mất nhiều ngày nghiên cứu và nỗ lực để hoàn thành việc này. Tôi hy vọng bạn đã tìm thấy thông tin hữu ích từ bài viết này. Tôi có kinh nghiệm cá nhân khi làm việc với một số công cụ ở trên như ReactNative, Android Java và Cordova. Phần còn lại dựa trên nghiên cứu và thông tin từ các lập trình viên khác.

Xu hướng lập trình di động vẫn chưa bớt hot thì cơ hội nghề nghiệp cho ngành này cũng không kém phần sôi động.
Nếu bạn vẫn đang tìm kiếm 1 khoá học lập trình di động “on-trend” 100% offline, học 1 được 2 thì không nên bỏ lỡ qua khoá học lập trình di động Flutter Basic trong 9 tuần của Nordic Coder đang tổ chức. Hoặc nếu bạn mong muốn học từ xa – 100% online, thì bạn có thể chọn Khoá học lập trình React Native cơ bản trong 6 tuần của Nordic Coder.