Viết code Android trong C# trông sẽ như thế nào

Mọi người đều biết người ta dùng code Java để viết ứng dụng Android, vậy dùng ngôn ngữ khác Java để viết ứng dụng Android sẽ như thế nào. Trong bài viết mình chỉ giới thiệu việc tạo app Android bằng C# mà cụ thể ở đây là dùng công nghệ Xamarin, Xamarin là công nghệ dựa trên dự án Mono nhằm dùng mục đích dùng chung 1 ngôn ngữ (mà cụ thể ở đây là C#) để viết ứng cho nhiều nền tảng mobile (IOS, Android, WindowPhone, Mac).

Bằng cách sử dụng 1 ngôn ngữ là C#, các project mobile app, web app, web service và desktop có thể chia sẻ code liên quan đến business logic, giúp các nhà phát triển không phải viết lại những đoạn code xử lý nghiệp vụ chung cho nhiều nền tảng. Và người ta có thể design hệ thống tốt hơn so với việc các nền tảng dùng các ngôn ngữ lập trình khác nhau.

Thôi nói vậy chắc đủ, bắt tay vào demo thôi 😀

Trước tiên bạn vào trang https://xamarin.com/download để download bản xamarin starter edition. Bản này hoàn toàn miễn phí, duy chỉ có điều là sẽ không cho bạn chạy project với dung lượng > 1MB.

Sau khi download và cài đặt xong, bạn ở Visual Studio lên, chọn File -> New Project, bạn sẽ thấy thêm một menu lựa chọn cho Android App,
android_projectNó sẽ tạo 1 project Android App cho bạn,

solution_explorer

Bạn sẽ thấy điều thú vị ở đây là cấu trúc của Android project trong C# không khác gì so với project bằng Java. Nó cũng có thư mục drawable, layout, values,.. và cách nó lưu trữ cũng giống hệt như bên Java.

Khi tạo project, Visual Studio sẽ tạo cho bạn project có template. Trước tiên bạn vào trong thư mục layout chọn file Main.axml để xem có gì đặc biệt không .

Không có gì khác biệt cả, y hệt 100% bên java chỉ khác mỗi cái đuôi file là axml 😀

Tiếp bạn hãy mở file MainActivity.cs và xem trong đó có gì

Trong java, người ta cấu hình thông tin của một activity trong manifest.xml nhưng trong C# người ta dùng Attribute. Bạn có thế thấy dòng lệnh :

tương đương với

trong Java.

Tiếp ta sẽ thấy trong Xamarin Android nó cũng có các API đặc trưng cho vòng đời của Activity y như bên Java

Tiếp tục bạn sẽ xem đoạn code dưới đây:

trong hàm SetContentView thì bên C# layout của 1 view sẽ lấy theo kiểu Resource.Layout.ten_layout (trong java là R.layout.ten_layout).

  • Hàm tìm view thì bên C# dùng kiểu generic còn trong Java là ép kiểu (VD: editText = (EditText)findViewById…). Trong C# cũng cho ép kiểu như Java nhưng bản thân mình thấy dùng kiểu generic thì sẽ hay hơn.
  • Add event cho view, trong ví dụ này là click của button. Bạn hoàn toàn có thể làm theo kiểu của Java, tức là SetOnClickListener cho button đó. Và activity của bạn phải implement View.IOnClickListener (trong C# tất cả interface đều có tiền tố I phía trước). Hoặc bạn có thể làm theo kiểu của C#, tức là add event kiểu delegate:

Và trong hàm  Button2_Clicked bạn chỉ việc thực hiện các công việc của button2.

Đây chỉ là hướng dẫn cơ bản để bạn tìm hiểu sâu hơn về Xamarin.Android. Và bạn thấy đấy, nó không có quá nhiều khác biết so với Android by Java.

Hơn thế nữa bạn còn có thể tận dụng được một số thế mạnh của C#, đặc biết là khả năng chia sẻ code trong khi lập trình với Xamarin.Android.

 

Hẹn gặp lại trong các bài viết tiếp theo

 

 

Spread the love
  •  
  •  
  •  
  •  
  •  

Leave a Reply

3 Comments on "Viết code Android trong C# trông sẽ như thế nào"

Notify of
avatar
Sort by:   newest | oldest | most voted
trackback

[…] Không những vậy hiện này đã có một số công ty đã phát triển công nghệ sử dụng một ngôn ngữ chung (C#, Javascript,…) để viết các ứng dụng native cho nhiều nền tảng (Android, iOS, Window phone) . Ví dụ như Xamarin, Titaninum, NativeScript, Rem Object,… bạn chỉ cần biết một ngôn ngữ thì có thể viết được các ứng dụng native. Nếu muốn biết rõ hơn, tham khảo bài viết về viết code C# trong Android . […]

van thủy
Guest

làm s để cài đặt được add

Trung
Guest

Tôi đã thử lập trình android bằng visual studio 2017, build thành công, nhưng khi chạy thì nó báo ko xác định được thiết bị, tôi cố tạo thiết bị mà không được.
Tôi phải làm gì để có thể debug được? Nếu tôi cắm điện thoại thật vào thì có debug được không?