Dạo gần đây, ngoài công việc chính, mình dành khá nhiều thời gian để làm một dự án nhỏ: một Car Launcher chạy trên Android Box dành cho ô tô.
Nhiều người hỏi mình: "Sao không dùng launcher có sẵn mà lại tự làm?"
Thật ra lý do rất đơn giản.
Ngày trước mình dùng một launcher của một anh developer người Nga. Mình rất thích ứng dụng đó. Giao diện đẹp, bố cục hợp lý, dùng hằng ngày rất tiện. Nó có gần như mọi thứ mình cần.
Sau này ứng dụng chuyển sang thu phí. Điều đó hoàn toàn bình thường vì mình hiểu để làm ra một sản phẩm tốt thì cần rất nhiều thời gian và công sức. Nhưng mình lại gặp chút khó khăn trong việc thanh toán nên đành phải tìm giải pháp khác.
Mình đã thử khá nhiều launcher trên Play Store.
Có cái đẹp nhưng hơi nặng. Có cái nhiều tính năng nhưng giao diện khá rối. Có cái thì lại thiếu đúng những thứ mình cần.
Dùng một thời gian, mình nghĩ:
Hay là tự làm một launcher theo đúng ý mình?
Vậy là dự án này bắt đầu.
Ban đầu mình chỉ định làm một giao diện đơn giản để mở Google Maps, nghe nhạc và truy cập nhanh các ứng dụng thường dùng.
Nhưng càng làm thì càng phát sinh thêm nhiều ý tưởng.
Mình bắt đầu tìm hiểu sâu hơn về Android, cách launcher hoạt động, cách hệ thống khởi động sau khi bật xe, làm sao để nhúng Google Maps vào launcher, làm sao để mọi thứ hoạt động ổn định trên Android Box...
Có những lỗi mình mất cả mấy ngày mới tìm ra nguyên nhân.
Có những tính năng tưởng đơn giản nhưng khi bắt tay vào làm mới thấy Android xử lý rất nhiều thứ phía sau.
Đôi lúc khá nản, nhưng mỗi lần giải quyết được một vấn đề thì lại thấy rất vui.
Nó chưa quá nhiều tính năng, nhưng đã có những thứ cơ bản như:
Mình cố gắng giữ một tiêu chí từ đầu đến giờ:
Mọi thứ phải đơn giản và dễ sử dụng khi đang lái xe.
Theo mình, một launcher trên ô tô không cần quá nhiều hiệu ứng hay hàng chục tính năng. Quan trọng nhất là người dùng có thể thao tác nhanh, ít bị phân tâm và tìm được đúng thứ mình cần.
Nhờ nó mà mình có cơ hội tìm hiểu rất nhiều thứ trước đây chưa từng đụng tới: từ Android Launcher, VirtualDisplay, TaskView cho đến OBD-II, CAN Bus.
Có những kiến thức nếu không tự làm chắc mình sẽ không bao giờ có động lực để học.
Đó cũng là điều mình thích nhất khi làm side project.
Không phải vì nó sẽ trở thành một sản phẩm lớn, mà vì mỗi lần hoàn thành một tính năng hay sửa được một lỗi khó, mình lại học thêm được một điều mới.
Có thể sau này mình sẽ bổ sung thêm kết nối OBD-II, HUD, chia đôi màn hình, hoặc một vài tính năng nhỏ phục vụ đúng nhu cầu sử dụng của bản thân.
Cũng có thể nhiều ý tưởng sẽ chỉ dừng lại trên giấy.
Nhưng mình nghĩ điều đó không quá quan trọng.
Điều mình thấy vui là mỗi tối hoặc cuối tuần đều có một dự án để tiếp tục, có một bài toán mới để giải quyết và có cảm giác sản phẩm của mình mỗi ngày tốt hơn một chút so với hôm qua.
Hy vọng một ngày không xa, mình sẽ có một phiên bản đủ hoàn thiện để chia sẻ với mọi người cùng trải nghiệm.
Nếu bạn cũng thích Android, thích xe, hoặc đơn giản là thích tự mày mò làm những thứ phục vụ chính nhu cầu của mình, rất mong được giao lưu và trao đổi.