Challenge #1
HTML Render Engine
Trong một vài năm trở lại đây, Facebook giới thiệu React Native framework cho phép lập trình viên Mobile tạo ra các ứng dụng Native dựa trên Javacript. Mục tiêu chính của React Native là xây dựng ứng dụng có khả năng tùy biến giao diện người sử dụng ở bất kì thời điểm nào thông qua mã HTML và Javascript.
Nhược điểm của giải pháp này là sự phụ thuộc vào Facebook để cập nhật Complier (complie HTML to Native Code) cũng như các Component mà React cung cấp.
Ứng dụng Zalo đã cung cấp khá nhiều loại tin nhắn (text, voice, photo, video, sticker,…) hữu ích đáp ứng với phần lớn đa số người sử dụng. Thách thức lớn nhất là làm sao có thể tùy biến giao diện tin nhắn mà người dùng không cần phải cập nhật phiên bản mới?
Dựa trên ý tưởng của React Native, bài toán được đặt ra là giải quyết các vấn đề sau:
- Xây dựng một công cụ cho phép định nghĩa UI logic trong một HTML String.
- Phát triển một HTML Render Engine hỗ trợ hiển thị một số Native UI Control cơ bản (view, button, text, scrollview,…).
Ngôn ngữ lập trình: C/C++/Java/ObjectiveC/Swift.