Bài viết này sẽ cho các bạn một cái nhìn tổng quan về các thành phần quan trọng & phổ biến trong một ứng dụng mobile, từ đó ta có thể xác định được những kiến thức cần tìm hiểu để có thể viết được một ứng dụng mobile khi mới bắt đầu.
Lập trình mobile & lập trình Window Form
Nếu bạn đã có những hiểu biết ban đầu về lập trình mobile có thể bỏ qua phần này. Vậy thì, lập trình mobile thật chất là lập trình cái gì ? đơn giản là bạn sẽ viết code để tạo ra ứng dụng mà người dùng có thể tương tác được & nó chạy trên điện thoại di động người dùng.
Như cách bạn đã từng lập trình để xuất kết quả hoặc lấy input từ màn hình Console những ngày đầu học một ngôn ngữ lập trình, hoặc kéo thả các thành phần giao diện để tạo ra ứng dụng Win Form chạy trên Windows, thì bây giờ, cũng vậy bạn sẽ kéo thả các thành phần giao diện để tạo ra ứng dụng chạy trên điện thoại di động!
Để tạo ra ứng dụng Console hoặc Window Form bạn sẽ dùng công cụ lập trình Visual Studio, còn để tạo ra ứng dụng trên điện thoại Android, bạn sẽ dùng Android Studio & để tạo ra ứng dụng trên điện thoại iPhone, bạn sẽ dùng công cụ lập trình XCode.
Xcode chỉ có thể chạy trên hệ điều hành MacOS, trong khi Android Studio có thể cài đặt trên cả máy tính chạy Window & MacOS.
5 năm trở lại đây, khi các ứng dụng có thể hoạt động trên smart phone & người dùng có thể sử dụng ở bất kỳ nơi đâu, thì các ứng dụng trên Window, thậm chí là các ứng dụng Web đã dần trở nên lỗi thời do không đáp ứng được nhu cầu về tốc độ & sự linh động. Nhu cầu tuyển dụng về lập trình Windows & web do vậy cũng giảm theo xu hướng, trong khi nhu cầu về lập trình di động ngày một tăng cao.
Trang bị cho mình kỹ năng & kinh nghiệm lập trình di động & chọn cho mình một công ty tập trung vào mảng lập trình di động sẽ là lợi thế cho con đường phát triển sự nghiệp cho các bạn sau này.
Các thành phần trong một ứng dụng Mobile
Tùy theo loại ứng dụng sẽ quyết định các thành phần quan trọng trong một ứng dụng mobile & độ phức tạp cũng tăng dần theo từng loại ứng dụng
Loại 1: App không sử dụng Cơ sở dữ liệu
Đây là loại đơn giản nhất, ứng dụng chỉ bao gồm các thành phần giao diện để xử lý các tương tác của người dùng mà không dùng đến bất kỳ một cơ sở dữ liệu nào. Có thể kể đến các loại ứng dụng như : Caculator (ứng dụng tính toán như máy tính Casio), Clock (ứng dụng xem giờ…), hoặc các ứng dụng Game cực kỳ đơn giản.
Thành phần giao diện (UI) dùng để hiển thị thông tin & nhận Input từ người dùng
Thành phần Code xử lý logic bao gồm các mã lệnh xử lý, tính toán dựa trên các Input của người dùng để cho ra Output thông qua các thành phần giao diện.
Để lập trình loại ứng dụng ở loại này, bạn cần nắm được kiến thức về các thành phần giao diện trên Android & iOS, cách sử dụng mà đơn giản chỉ là kéo thả Button, Label, Text, TextInput … trên Android Studio hoặc Xcode.
Khái niệm về Activity trên Android & khái niệm ViewController trên iOS là hai thứ bạn cần nắm rõ để lập trình loại ứng dụng này & các loại ứng dụng ở các loại khó hơn sau này.
Loại 2: App sử dụng Cơ sở dữ liệu tại Local
Ở loại này, ứng dụng sẽ sử dụng cơ sở dữ liệu (thường là nhỏ) để lưu trữ thông tin cho việc tính toán hoặc hiển thị sau mỗi lần tắt & mở lại app của người dùng, cơ sở dữ liệu này lưu trữ bên trong app (Local), nếu người dùng xóa app trên điện thoại, thì cơ sở dữ liệu này cũng sẽ bị xóa theo.
Một số cơ sở dữ liệu thường được dùng trong thành phần Cơ sở dữ liệu ở hình trên bao gồm: Shared Preference trên Android, hoặc NSUserDefault trên iOS, SQLite, JSON file.
Shared Preference hoặc NSUserDefault quản lý dữ liệu theo key-value tương tự như kiểu dữ liệu Dictionary trên C# hoặc HashMap trên Java, việc sử dụng chúng cực kỳ đơn giản & bạn chỉ cần tìm hiểu 2 kiểu dữ liệu trên là biết cách sử dụng.
Với SQLite, bạn cần có một chút kiến thức về kiểu dữ liệu quan hệ (Relational Database) gồm các khái niệm tổ chức về Table, Row, Column, & câu lệnh truy vấn SQL.
Với JSON, bạn cần nắm về cấu trúc định dạng dữ liệu theo kiểu JSON, chúng có rất ít cú pháp do vậy rất dể nắm bắt chỉ với 5s Google.
Do đây là các cơ sở dữ liệu được thiết kế mang tính linh hoạt, dể sử dụng, nên chúng thường dùng trong các trường hợp lưu trữ một lượng dữ liệu nhỏ , ít quan trọng & có thể tái tạo lại được nếu bị xóa bởi người dùng
Loại 3: App sử dụng Web service & cơ sở dữ liệu tại Server
Đây là loại ứng dụng thường được triển khai tại Labian Labs & các công ty phát triển các ứng dụng có độ phức tạp cao, đáp ứng cho hàng tỉ người dùng như Facebook… Ở loại này này, cơ sở dữ liệu được lưu trữ trên một máy chủ & được truy cập từ xa bởi ứng dụng thông qua các Web service hoạt động 24/24. Đừng choáng ngợp, các thành phần này sẽ được giải thích ngay bên dưới.
Trong mô hình trên, thành phần giao diện (UI) & thành phần code xử lý logic tương tự như ở loại 1 & 2.
Tuy nhiên, một số dữ liệu quan trọng cần được bảo vệ & yêu cầu vẫn được lữu trữ ngay cả khi người dùng xóa ứng dụng (vd như hình ảnh, post bạn đăng trên Facebook, nếu xóa app Facebook, thì cài lại bạn vẫn thấy những hình đã đăng trước đó), do vậy cơ sở dữ liệu không lưu tại Local mà chúng được lưu trữ trên 1 máy tính khác gọi là Server (máy chủ).
Việc truy cập đọc thông tin từ các cơ sở dữ liệu này sẽ thông qua các hàm xử lý nằm trên máy chủ, các hàm xử lý này còn được gọi là các Web service.
Lưu ý rằng, trong mô hình này, mốt số Code xử lý logic còn có thể được di chuyển lên máy chủ dưới dạng các Web service để tối ưu tốc độ xử lý cho ứng dụng & đảm bảo các vấn đề vể bảo mật.
Lập trình mobile loại này bạn cần nắm được các khái niệm về Web service, cách gọi hàm các Web service, cách nhận dữ liệu trả về từ Web service…
Nếu bạn cũng tham gia vào phát triển các Web service, bạn cần nắm thêm ngôn ngữ lập trình Web service (Php, Asp.net, python…), chuẩn Web service RESTfull & các cơ sở dữ liệu trên máy chủ thường là SQL Server, MySQL, MongoDB…
Nên bắt đầu từ đâu ?
Hãy bắt đầu từ loại 1, nắm rõ các thành phần giao diện, làm quen với lập trình di động Android hoặc iOS, sau đó bạn có thể tìm hiểu các kiến thức liên quan đến Web service & Cơ sở dữ liệu trước khi qua phát triển các ứng dụng loại 2 & loại 3.
Hãy cùng tìm hiểu cách thức chúng tôi đã sử dụng Web service như thế nào trong bài tiếp theo “Web service trong ứng dụng mobile”
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink