[Basic for Absolute Beginner] – [Part 4] – Basic Steps for a new app

[Windows Phone–Silverlight] Layout with XAML–Basic for Absolute Beginner – Part 1

[Windows Phone – Silverlight] Layout with XAML – Basic for Absolute Beginner – Part 2

[Basic for Absolute Beginner] – [Part 3] – App’s Structure and how to customize it

Vậy là bạn đã biết cách bố cục giao diện với XAML, cấu trúc một ứng dụng. Bây giờ, ta sẽ đi tiếp vào phần các bước cơ bản để tạo một ứng dụng mới

Khoan đã, trong 2 part kia, bạn đã tạo kha khá “New Project” rồi phải ko. Bây giờ, bạn sẽ biết tới nó một cách bài bản

Hình thành ý tưởng

Ý tưởng sẽ định hình cho ứng dụng của bạn. Không bao giờ bắt tay vào viết ứng dụng mới khi bạn chưa hề biết ứng dụng của bạn sẽ làm gì

Bí ý tưởng, hãy lên google play store, Apple App Store để học hỏi từ những ứng dụng hay ho trên đó, nhưng đừng sao chép chúng, hãy tận dụng ý tưởng của họ, cải tiến nó, làm nó tốt hơn, bằng cách dưới đây

Tinh gọt ý tưởng của bạn

Khi đã có ý tưởng rồi, việc tiếp theo bạn làm là sẽ đánh giá ý tưởng đó.

Nghe có vẻ khá buồn cười, nhưng tôi khuyên bạn viết ra giấy câu sau đây:

“[Tên ứng dụng] is the best app of its kind in [chức năng chính], [điểm nổi bật]”

Ví dụ nhé: “Karaoke Online Free is the best app of its kind in singing karaoke on windows phone, it helps people singing at most 2 taps”

Tên ứng dụng: Karaoke Online Free (search trên store, bạn sẽ thấy ứng dụng này có hơn 4000 review, trung bình 4.3 sao)

Chức năng chính: hát karaoke trên điện thoại windows phone

Điểm nổi bật: sử dụng vô cùng đơn giản, chỉ cần 2 chạm là đã có thể hát

Stick to the plan

Bạn đã có một câu “review” đầy quyền lực mới tạo ra bên trên rồi, hãy bám chặt lấy nó. Giả sử khi làm xong, bạn cần tới 3 chạm, hoặc 4 chạm mới có thể hát được, thì ứng dụng của bạn vẫn chưa hoàn chỉnh.

Điều tệ hại nhất là “tính năng chính” mà ứng dụng bạn cung cấp lại không hoàn hảo. Kế hoạch là hát karaoke trên điện thoại, sau cùng bạn chỉ làm được việc tra cứu bài hát hoặc lời nhạc, thì đây là một ý tưởng fail hoàn toàn, vì ứng dụng bạn viết ra không dành cho mục đích đó.

Tạo project

Tạo một Project mới, quá đơn giản rồi phải không?

Cài đặt các gói Nuget cần thiết

Ứng dụng của bạn sẽ cần 1 số thư viện ngoài, và các thư viện này có thể cài đặt qua Nuget: [Visual Studio] NUGET the Magician

Giới thiệu một số gói Nuget hay ho:

  • HTMLAgilityPack: thao tác với chuỗi HTML
  • JSON.NET: thao tác với dữ liệu json
  • Windows Phone Toolkit: bộ toolkit các control và tiện ích cộng thêm cho ứng dụng

Tạo các folder chính

Đặt tất các các page bạn sẽ tạo trong một folder tên là PageGroups. Điều này giúp bản quản lý code dễ dàng hơn, dễ dàng chỉnh sửa hơn, và bạn sẽ luôn biết một đoạn code nằm ở đâu. Nếu ứng dụng phức tạp hơn, mỗi một mục nội dung, hãy tạo cho nó một folder trong PageGroups, ví dụ như “LoginGroup”, “SettingGroup”

Đặt tất cả các đoạn code dùng chung trong một thư mục tên là Utilities. Đoạn code dùng chung có thể là một method chuyển đổi đơn vị, một method lấy dữ liệu từ API, chúng có thể gọi từ bất kỳ page nào trong ứng dụng (tất nhiên là những method này “Static”)

Tạo một folder cho Data hoặc Database. Bạn sẽ không muốn để Database ngay bên ngoài Project đâu

Tạo một Folder cho các Data Model, một folder cho CustomControl

Chốt: Tạo folder cho tất cả những thứ bạn thấy có thể gom nhóm lại với nhau. Nên nhớ, trong folder có thể tạo thêm folder khác. Hãy quản lý chúng thật chặt chẽ

Cần một file cho ViewModel, hay StaticData

Nếu bạn đã biết về MVC, hay MVVM, thì bạn sẽ biết rằng trong các ví dụ, họ thường tạo các class ViewModel ngay trong App.xaml.cs

Vậy thì tại sao ta không tạo hẳn một file chỉ để chứa những class này?

Tạo một file mới tên là “ViewModelInstances” để chứa các ViewModel, và khai báo các ViewModel như cũ

Bạn cũng sẽ cần một file gọi là StaticData, để lưu những dữ liệu trung gian, tồn tại suốt thời gian chạy app

Các Page cơ bản phải có

About

About nói về bạn và ứng dụng của bạn. About page chỉ mất khoản 5 phút để làm, nhưng bạn sẽ có một ứng dụng ấn tượng

Thậm chí, about còn có thể đóng các vai trò sau:

  • Nhắc người dùng Rate và Review ứng dụng của bạn
  • Cho phép người dùng gửi thư góp ý, hoặc UserVoice
  • Thể hiện các change log
  • Quảng cáo cho các ứng dụng khác của bạn

Setting

Setting là page mà người dùng có thể tinh chỉnh một số thiết lập trong ứng dụng của bạn. Page này giúp người dùng có cảm giác như “Điều khiển” được ứng dụng theo cách họ muốn

Nếu ứng dụng của bạn ko có gì để setting cả, thì page này cũng không cần thiết. Nhưng hãy cân nhắc kỹ, các ứng dụng viết vội vàng thường kém chất lượng và không có các tùy chọn

Chuẩn bị dữ liệu

Tạo Model

Model là cấu trúc dữ liệu của bạn. Thường thì công việc này, bạn phải tạo bằng tay.

Tuy nhiên, nếu bạn nhận dữ liệu dạng Json, thì có một các vui hơn để tự động hóa việc này: JSON2CSHARP

Nhìn hình trên chắc bạn cũng biết cách sử dụng nhỉ. Sau khi tạo ra các class, bạn có thể copy và paste nó trực tiếp vào databse

Còn nữa, nếu bạn sử dụng cơ chế Binding, bạn sẽ muốn khai báo kế thừa từ Interface INotifyPropertyChanged

Và bộ công cụ Resharper sẽ giúp ích cho bạn

Đọc thêm về Resharper ở đây: [Windows Phone – Silverlight] Layout with XAML – Basic for Absolute Beginner – Part 2, phần 2.1

Load Data ở đâu trong code behind?

Load data là việc bắt buộc phải làm. Nhưng load data ở đâu? Nếu đặt nhầm chỗ, ứng dụng của bạn sẽ chậm phản hồi tới người dùng, và sẽ bị bad review

Và có hẳn một bài blog viết về nó: [Windows Phone] Where to put load data method?

Thế là xong rồi, hãy dùng kiến thức bạn có trong bài Layout with XAML để bắt đầu thiết kế và tạo nên ứng dụng Windows Phone thực sự đầu tiên của bạn

Chúc vui

Advertisements

2 thoughts on “[Basic for Absolute Beginner] – [Part 4] – Basic Steps for a new app

  1. Pingback: [Basic for Absolute Beginner] – [Part 6] – Source Control | C++/C#

  2. Pingback: [Not so Basic] – Solve your problems | Tuan Tran's Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s