TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
LẬP TRÌNH WATCH FACE
TRÊN WEAR OS
Cơng ty thực tập
: Fossil Group VN
Người phụ trách
: Anh Trần Ngọc Thành
Thực tập sinh
: Nguyễn Đắc Thiên Ngân
TP. Hồ Chí Minh, tháng 12 năm 2021
2
LỜI MỞ ĐẦU
Ngày nay, ngành công nghiệp thiết bị thông minh đang ngày càng phát triển. Đặc biệt là
đồng hồ thơng minh hay cịn gọi là smart watch gần đây đã được nhận nhiều sự chú ý đến từ các
tín đồ u thích cơng nghệ. Nhiều hãng đã trang bị thêm rất nhiều chức năng hữu ích giúp việc
tiếp cận đến người dùng dễ dàng hơn. Bên cạnh những nhãn hàng quen thuộc như Apple Watch,
Samsung Gear, thương hiệu Fossil góp phần khơng nhỏ trong thị trường Android Wear hiện nay.
Sau khi Google ra mắt Android Wear (Wear OS hiện tại) vào năm 2014, cơ hội phát triển
đồng hồ thông minh trên thiết bị Android ngày càng mở rộng. Đồng hồ thơng minh đem lại rất
nhiều tiện ích như theo dõi lịch hẹn, email, nhận cuộc gọi, nhận diện giọng nói,.. giúp cải thiện
cuộc sống của người dùng ngày càng tốt hơn. Ngồi ra đồng hồ thơng minh cịn có tính năng
nổi bật đó là tùy chỉnh mặt đồng hồ theo sở thích như số điện tử, đồng hồ kim, đồng hồ tích hợp
thơng báo cao độ, tích hợp la bàn và rất nhiều thứ khác. Vì lý do này, em quyết định chọn lập
trình watch face trên Android Wear làm định hướng cho việc học tập của mình.
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như
muốn được tham gia trong một mơi trường chun nghiệp, em có dự định là sẽ thực tập trong
hè. Vì vậy, em quyết định chọn Fossil- một môi trường lý tưởng, hiện đại, chuyên nghiệp - là
nơi sẽ giúp em thực hiện được dự định này.
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
3
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty Fossil Việt Nam đã tạo điều kiện cho em có cơ hội
được thực tập tại công ty.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của nhóm trainer, nhóm
thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được watch face
trên Wear OS. Chân thành cảm ơn các anh chị trong nhóm trainer đã bỏ ra nhiều thời gian,cơng
sức để hướng dẫn chúng em hoàn thành đợt thực tập này.
Đặc biệt cảm ơn anh Tuấn đã training Android, hướng dẫn, giúp đỡ cho chúng em tận
tình cả những khó khăn trong cơng việc, đến những khó khăn việc làm quen với môi trường
mới; cảm ơn anh Thành đã training những kỹ năng về đọc tài liệu và debug lỗi, hỗ trợ chúng em
rất nhiều về các vấn đề kỹ thuật trong thời gian qua.
Cũng xin cảm ơn thầy cô trong khoa Cơng nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều
kiện em làm bài báo cáo này.
Nguyễn Đắc Thiên Ngân
TPHCM, 15/12/2021
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
4
NHẬN XÉT CỦA KHOA
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
5
MỤC LỤC
Chương 1: Giới thiệu công ty thực tập
6
Giới thiệu công ty Fossil
6
Sản phẩm của công ty
6
Chương 2: Nội dung thực tập
8
Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
8
Nghiên cứu kỹ thuật
8
Các công cụ làm việc
8
Xem source code mẫu và tài liệu hướng dẫn tìm hiểu các công nghệ để xây dựng 1 watch
face trên Wear OS
9
Tìm hiểu OpenGL
13
Lập trình watch face trên Android
14
Thực hiện project
16
Chương 3: Chi tiết về lập trình watch face và refactor code
19
Giới thiệu về lý do thực hiện refactor
19
Thực hiện
19
Kế hoạch
19
Thực hiện refactor watch face Fashion Digital:
19
Thực hiện refactor watch face Blue:
22
TÀI LIỆU THAM KHẢO
25
TỔNG KẾT
26
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
6
Chương 1: Giới thiệu cơng ty thực tập
Hình 1
1. Giới thiệu công ty Fossil
Fossil Việt Nam (trước đây được biết với tên gọi là Misfit) là một trong 60 văn phòng thuộc
Fossil Group. Trước khi gia nhập vào Fossil, Misfit là một công ty công nghệ cao của Mỹ
chuyên chế tạo và sản xuất các thiết bị đeo tay và các sản phẩm nhà thơng minh, với văn phịng
hoạt động và R & D tại Việt Nam. Trong tháng 11/2015, Misfit đã được mua lại và kể từ đó trở
thành một trong những thương hiệu thuộc Fossil Group, bên cạnh các nhãn hiệu nổi tiếng thế
giới như Fossil, Michael Kors, Burberry, Emporio Armani, Diesel, adidas, DKNY, v.v...
2. Sản phẩm của công ty
Là một trong số 3 nhà sản xuất đồng hồ lớn nhất trên thế giới, mỗi năm Fossil Group bán ra trên
50 triệu chiếc đồng hồ và phụ kiện tại hơn 150 quốc gia.
Với sự hỗ trợ của Misfit, Fossil sẽ hướng tới mục tiêu đa dạng thiết bị kết nối nhằm thỏa mãn
các khách hàng ưa chuộng thời trang, và trở thành nơi hội tụ hàng đầu về phong cách và công
nghệ.
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
7
Trong tương lai, Fossil Việt Nam sẽ là Center of Excellence đối với Cloud & App Innovation
and Development của Fossil Group, và sẽ làm phong phú mặt hàng các thiết bị kết nối.
Với sứ mệnh trong tay, chúng tôi sẽ vẫn là một nơi mà sự đổi mới luôn khởi sắc, nơi mà các tài
năng đẳng cấp thế giới được thừa hưởng, và nơi mà mọi người gặp gỡ nhau để tạo ra những sản
phẩm tuyệt vời hơn và kể những câu chuyện thú vị hơn.
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
8
Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình Watch Face trên Wear OS” nhằm mục đích giúp sinh
viên thực tập được đào tạo về lập trình mặt đồng hồ trên hệ điều hành Wear OS trên Android,
đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, giao tiếp với đồng nghiệp. Tại
cơng ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trường phát
triển mặt đồng hồ chun nghiệp.
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Thời gian : 1 ngày
Nội dung : Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về cơng ty, q trình thành lập và phát triển (như
đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của cơng ty.
Ngồi ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty như thời
gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công việc…
Kết quả : Hiểu thêm về công ty Fossil, q trình thành lập và phát triển. Có thêm các kỹ
năng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có trách
nhiệm hơn.
2. Nghiên cứu kỹ thuật
2.1.
Các công cụ làm việc
Thời gian : 3 ngày
Nội dung : Tìm hiểu về các cơng cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, mentor đã hướng dẫn thực tập sinh tìm hiểu về các cơng cụ
sẽ giúp ích cho trong công việc sau này. Một số phần mềm trong số đó như:
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
9
-
Gerrit là công cụ code review cho team Android của Google
Gerrit bắt buộc mỗi commit đều phải là một commit đẹp, từ đó tạo nên một
history đẹp cho dự án
Gerrit có cơ chế review -2, -1, 0, +1, +2 hiệu quả và rõ ràng hơn Github.
Mỗi review là commit-based, tức là review đem lên là review chỉ có 1 commit
duy nhất. Sau khi được nhận xét thì việc phải làm là sửa và commit --amend.
Lịch sử giữa các lần sửa được xếp thành các patch và có thể xem cụ thể trong
review, nhưng khi merge vào master thì chỉ là 1 commit duy nhất.
Cơ chế này bắt buộc mọi thành viên phải cẩn thận với từng commit, và giữ cho
git history ln ln sạch sẽ. Gerrit cịn một số ưu điểm nữa như comment
trong code rất dễ dàng, code compare hiển thị sẵn theo 2 cột, hiện những
review nào đang liên quan đến review hiện tại
-
Jira - công cụ quản lý công việc cũng như ghi chú các hướng dẫn hiệu quả và tiện
lợi
-
Android Studio - IDE hỗ trợ phát triển Android.
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Làm quen với với các công cụ, đặc biệt là Git bash và Gerrit.
2.2.
Xem source code mẫu và tài liệu hướng dẫn tìm hiểu các công nghệ để xây
dựng 1 watch face trên Wear OS
Các kiến thức liên quan: ngôn ngữ Kotlin trong Android, thư viện Dagger
Thời gian : 3 ngày (1 tuần)
Nội dung : Đọc tài liệu hướng dẫn và tìm hiểu cơng nghệ để xây dựng 1 watch face
cơ bản
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
10
-
Định nghĩa về Android:
Android là một tập hợp phần mềm (software stack) dành cho các thiết bị di
động, bao gồm hệ điều hành, phần mềm trung gian (middleware)và các ứng
dụng chủ chốt (key applications). Google Inc. đã mua lại phát triển ban đầu
của phần mềm từ Android Inc., năm 2005. Hệ điều hành di động của
Android dựa trên nền tẳng Linux
-
Ngôn ngữ Kotlin và các thế mạnh vượt trội so với Java:
Kotlin là ngơn ngữ lập trình được phát triển bởi JetBrains. Nó xuất hiện lần
đầu năm 2011 khi JetBrains công bố dự án của họ mạng tên "Kotlin". Đây
là một ngôn ngữ mã nguồn mở.
Kotlin biên dịch thành JVM bytecode hoặc JavaScript - Giống như Java,
Bytecode cũng là format biên dịch cho Kotlin. Bytecode nghĩa là một khi
đã biên dịch, các đoạn code sẽ chạy thông qua một máy ảo thay vì một bộ
xử lý. Bằng cách này, code có thể chạy trên bất kỳ nền tảng nào, khi nó
được biên dịch và chạy thơng qua máy ảo. Khi Kotlin được chuyển đổi
thành bytecode, nó có thể truyền được qua mạng và thực hiện bởi JVM
Kotlin có thể sử dụng tất cả các nền tảng và thư viện Java hiện có - Bất kể
là nền tảng cao cấp dựa trên xử lý annotation. Điều quan trọng là Kotlin dễ
dàng tích hợp với Maven, Gradle hay các hệ thống build khác.
Kotlin dễ học và dễ tiếp cận. Null-safety của Kotlin: giúp chúng ta thoát
khỏi NullPointerException. Giúp chúng ta tránh những exeption kiểu con
trỏ null. Trong Kotlin, hệ thống sẽ từ chối biên dịch đoạn code đang gán
hay trả về giá trị null
Review code khơng cịn là vấn đề - Kotlin tập trung nhiều hơn vào việc cú
pháp dễ hiểu, dễ đọc để review, chúng có thể hồn thành bởi những thành
viên team chưa quen với ngôn ngữ này
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
11
-
Tạo ứng dụng chạy trên đồng hồ Android:
Tạo ra một ứng dụng cơ bản, được mentor hướng dẫn cách cấu hình quyền
truy cập cho android, cách sử dụng các cơng cụ để biên dịch, chạy android
trên máy ảo trên PC.
-
Tìm hiểu về Dependency Injection
Theo như trong nguyên lý cuối cùng của SOLID - Dependency inversion
principle:
1. Các module cấp cao không nên phụ thuộc vào các modules cấp thấp. Cả
2 nên phụ thuộc vào abstraction.
2. Interface (abstraction) không nên phụ thuộc vào chi tiết, mà ngược lại.
( Các class giao tiếp với nhau thông qua interface, không phải thông qua
implementation.)
Với cách code thông thường, các module cấp cao sẽ gọi các module cấp
thấp. Module cấp cao sẽ phụ thuộc và module cấp thấp, điều đó tạo ra các
dependency. Khi module cấp thấp thay đổi, module cấp cao phải thay đổi
theo. Một thay đổi sẽ kéo theo hàng loạt thay đổi, giảm khả năng bảo trì
của code.
Chính vì vậy nếu tn theo Dependency Inversion principle, các module
cùng phụ thuộc vào 1 interface khơng đổi. Ta có thể dễ dàng thay thế, sửa
đổi module cấp thấp mà khơng ảnh hưởng gì tới module cấp cao.
Từ đó ta có Dependency Injection: đây là một cách để hiện thực Inversion
of Control Pattern.
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
12
-
Tìm hiểu về Dagger 2
Đây là một dependency injection, khác với các dependency injection dành
cho việc triển khai ứng dụng Enterprise như Spring IoC hay JavaEE CDI.
Dagger Được thiết kế cho các thiết bị low-end, nhỏ gọn nhưng vẫn đầy đủ
tính năng.
Hầu hết các dependency injection sử dụng reflection để tạo ra và inject các
module. Reflection nhanh và thích hợp cho các version Android cũ nhưng
reflection gây ra khó khăn rất lớn trong việc debug hay tracking khi gặp
lỗi.
Thay bằng việc sử dụng reflection Dagger sử dụng một trình biên dịch
trước (pre-compiler), trình biên dịch này tạo ra tất cả các lớp, các module
cần thiết để làm việc.
Dagger ít mạnh mẽ so với các dependency injection khác nhưng thay vào
đó Dagger lại nhẹ nhàng và dễ dàng sử dụng cũng như gần như bỏ đi được
điểm yếu của dependency injection là khả năng tracking bug.
Thực hiện :
-
Đọc tài liệu hướng dẫn
-
Xem source code mẫu và hiểu cách vận hành project của cơng ty
Kết quả :
-
Nâng cao kỹ năng lập trình với ngơn ngữ Kotlin
-
Có được những kiến thức quan trọng cho việc lập trình watch face sau này.
-
Ngồi ra cịn được biết thêm một số quy tắc trong việc viết code sao cho đúng
chuẩn, dễ đọc, dễ hiểu.
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
13
2.3.
Tìm hiểu OpenGL
Nội dung: Các kiến thức cơ bản về OpenGL ES để có thể làm ra một watch face đơn
giản.
-
Khái niệm cơ bản về OpenGL.
Năm được các khái niệm cơ bản về OpenGL (là một bộ thư viện graphics được
dùng trên nhiều nền tảng khác nhau), để lập trình đồ họa trên các thiết bị nhúng,
thiết bị di động.
Ngoài ra, đọc thêm về những khái niệm cơ bản trong OpenGL như hệ tọa độ 3D,
vertex, pixel, fragment…, là những khái niệm rất cơ bản và quan trọng trong lập
trình 3D.
-
Rendering pipeline:
Làm thế nào để tạo ra được hình ảnh 3D trong khi màn hình chỉ là một mặt phẳng
2D. Thực chất là chúng ta dữ liệu vào là những thơng tin về hình ảnh 3D, sau đó
cái mà ta nhận được là một hình ảnh 2D mơ phỏng lại hình ảnh 3D đó. Q trình
đó gọi là rendering pipeline. Vậy, có thể định nghĩa rendering pipeline là một
chuỗi các phép biến đổi của các thơng tin về hình ảnh 3D ra thành hình ảnh 2D
trên màn hình.
-
Shader
Là các phép biến đổi vertex, color để cho ra những hiệu ứng đặc biệt. Việc này
được thực hiện trong pipeline, từ phiên bản OpenGL 2.0 trở đi.
-
Basic GLSL-ES
GLSL-ES là một ngôn ngữ shading cấp cao, dựa trên ngơn ngữ lập trình C, giúp
lập trình viên có thể điều khiển trực tiếp rendering pipeline. Mục đích của nó là để
viết shader, để tạo ra những hiệu ứng đẹp mắt hơn.
-
MVP Matrix
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
14
Là ma trận biến đổi, dùng để biến đổi những thơng tin tọa độ 3D về hình ảnh 2D.
Nó bao gồm ma trận model, view và projection. Sự kết hợp giữa ba ma trận này
tạo ra MVPmatrix, giúp ta có thể biến đổi hình dạng đối tượng, thay đổi góc nhìn
hoặc thay đổi phép chiếu hình của camera.
-
Texture
Những thơng tin vertices đưa vào chứa thông tin về một tập hợp các tam giác, khi
render lên sẽ cho ta một mô hình 3D dạng khung dây. Nhưng mà nếu chỉ render
dạng khung dây thì nhìn hình ảnh sẽ khơng thực. Bởi vậy ta cần phải phủ hình ảnh
vào những khung dây này. Khái niệm texture giúp ta thực hiện điều này. Ta sẽ
load một hình ảnh bitmap và ứng với những tọa độ texture trên mỗi tam giác, ta sẽ
có được hình ảnh một đối tượng 3D với bề mặt thực hơn.
Thực hiện :
-
Tự tìm hiểu và hỏi mentor những vấn đề chưa nắm rõ
-
Đọc source code và làm theo hướng dẫn chạy thử render 1 watch face.
Kết quả :
2.4.
-
Hiểu được những khái niệm cơ bản trong lập trình đồ họa với OpenGL.
-
Đã vẽ được những hình ảnh cơ bản trong OpenGL, load file mơ hình *.obj.
Lập trình watch face trên Android
Thời gian : 3 ngày
Nội dung : Các kỹ thuật tạo ra một mặt đồng hồ cơ bản trong Android, sử dụng
OpenGL trong Android.
-
Hiểu thêm về các khái niệm cần nắm trong đồng hồ:
+ Analog và digital watch
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
15
Analog watch: Đồng hồ analog là một chiếc đồng hồ có màn hình khơng
phải là kỹ thuật số mà là tương tự với mặt đồng hồ truyền thống.
Digital watch: Đồng hồ kỹ thuật số là tên gọi của loại đồng hồ hiển thị thời
gian bằng các màn hình điện tử hoặc các chữ số.
+ Interactive (Active) và Ambient mode
Wear OS tự động xử lý việc chuyển sang chế độ năng lượng thấp cho một
ứng dụng đang hoạt động khi người dùng khơng cịn sử dụng đồng hồ của
họ. Đây được gọi là ambient mode - chế độ môi trường xung quanh hệ
thống. Nếu người dùng tương tác lại với đồng hồ trong một khung thời
gian nhất định, Wear OS sẽ đưa người dùng trở lại ứng dụng mà họ đã
dừng lại - active mode.
+ Watch face complication
Complication là một khái niệm để chỉ tất cả những chức năng khác nằm
ngoài chức năng chỉ giờ, phút , giây cơ bản của một chiếc đồng hồ.
Một số chức năng Complication thường gặp ở đồng hồ:
- Moonphase (Lịch tuần trăng): là chức năng giúp người dùng tính
ngày âm lịch. Tại các nước phương Tây khơng có lịch âm thế nên
chức năng moonphase được dùng để tính chu kỳ hoạt động của Mặt
Trăng.
- Sun & Moon (Lịch ngày đêm): là cửa sổ hiển thị hình ảnh Mặt
Trăng và Mặt Trời trên một ơ lịch của đồng hồ, giúp người đeo phân
biệt khoảng thời gian ban ngày và ban đêm.
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
16
- Heartbeat (Nhịp tim): là một khái niệm ra đời bởi thương hiệu
Frederique Constant. Với Heartbeat, người dùng có thể nhìn thấy
chuyển động bên trong đồng hồ qua một phần lộ cơ nhỏ trên mặt số.
Chức năng này cũng tương đương với khái niệm Open Heart.
- Chronograph (Bấm giờ thể thao): Là chức năng thường được thấy
trên các dòng đồng hồ thể thao. Chronograph được sử dụng để đo
thời gian trong các hoạt động thể thao như chạy hay bơi lội... tương
tự như chức năng Stopwatch (đồng hồ bấm giờ).
Thực hiện :
Tạo ra watch face cơ bản dựa trên hướng dẫn
Kết quả:
Đã có thể tạo ra watch face cơ bản trong source code của công ty và chạy được
thành công trên máy ảo Android.
3. Thực hiện project
Sau hơn 3 tuần đọc tài liệu và mày mò thực hành, thực tập sinh đã nắm được những kiến
thức cơ bản về Kotlin, Opengl, Android. Trong tuần tiếp theo, thực tập sinh áp dụng
những kiến thức đã học để thực hiện 2 watch face trên Android
Chi tiết đồ án sẽ được nói ở phần sau.
4. Lịch làm việc
Mức
Tuần
Công việc
Người hướng dẫn
độ
Nhận xét của người
hoàn
hướng dẫn
thành
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
17
-
Tìm hiểu về cơng ty, Anh Trần Duy Tú
cách tổ chức của
công ty.
1
-
Làm quen với các
công cụ làm việc
trong công ty.
-
Học cách trao đổi,
làm việc qua email.
-
Tìm hiểu về ngơn Anh Trần Duy Tú
ngữ lập trình Kotlin
và thư viện Dagger
2
-
Thực hành các bài
codelab hướng dẫn
-
Đọc
tài
source
liệu và
code
của
cơng ty
-
Tìm
hiểu
về Anh Huỳnh Minh
OpenGL
-
3
Thịnh
Thực hành một số
hình vẽ cơ bản
-
Load mơ hình 3D
từ file
-
Tìm hiểu về lập Anh Huỳnh Minh
trình watch face
4
-
Thịnh
Thực hành code 1
watch face và chạy
trên máy ảo
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
18
-
Nhúng
code
OpenGL
bằng
có
C++
sẵn
vào
Android
Refactor
5,6,7
Watch Face Anh
Fashion Digital
Lâm
Trần
Tuấn, Anh Trần
Ngọc Thành
Refactor
8,9,10
Blue
Watch Face Anh
Lâm
Trần
Tuấn, Anh Trần
Ngọc Thành
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
19
Chương 3: Chi tiết về lập trình watch face và refactor code
1. Giới thiệu về lý do thực hiện refactor
Do phiên bản sản phẩm đồng hồ trước đó chưa hỗ trợ pair với điện thoại. Hiện tại đã kết hợp
việc pair mặt đồng hồ với app trên điện thoại, người dùng có thể tùy chỉnh mặt đồng hồ trên ứng
dụng điện thoại. Source code của các mặt đồng hồ cũng cần được refactor, đặc biệt là source
code cần chuyển từ Java sang Kotlin.
2. Thực hiện
Nguyễn Đắc Thiên Ngân và sự giúp đỡ của anh Lâm Trần Tuấn, anh Trần Ngọc Thành và
Nguyễn Trí Dũng.
3. Kế hoạch
3.1 Thực hiện refactor watch face Fashion Digital:
-
Đọc source code cũ để nắm những điểm thiết kế cốt yếu của mặt đồng hồ đó
-
Take notes những ghi chú khi làm
-
Sau đó xem xét cách lưu trữ data cũ do người dùng tùy chỉnh mặt đồng hồ và chuyển đổi
sang source code của mặt đồng hồ kiểu mới như thế nào
-
Tiến hành chuyển đổi các source code liên quan đến mặt đồng hồ từ Java qua Kotlin.
-
Tối ưu các hàm và tùy chỉnh sao cho code đẹp mắt, dễ bảo trì.
Kết quả:
-
Hồn thành refactor
-
Fix những bug còn tồn đọng
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
20
Watch Face Fashion Digital
Các tuỳ chọn được phép chỉnh sửa trên watch
face này:
+ Dial style: Thay đổi background của mặt
đồng hồ (Hình 3.1.3).
+ Dial color: Thay đổi màu của background
(Hình 3.1.4).
+ Info color: Thay đổi màu logo và màu của
complication (Hình 3.1.5).
+ Digits color: Thay đổi màu của text thể hiện
giờ và phút (Hình 3.1.6).
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
21
Hình 3.1.1
Hình 3.1.2
Hình 3.1.3
Hình 3.1.4
Hình 3.1.5
Hình 3.1.6
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
22
3.2 Thực hiện refactor watch face Blue:
Tương tự các bước bên watch face Fashion Digital. Ngoài ra cần nghiên cứu thêm cách hoạt
động của ẩn hiện second time zone bên format code mới.
Kết quả:
-
Hoàn thành refactor
-
Tối ưu thêm một số hàm truyền dữ liệu
-
Thêm các tính năng cịn thiếu khi source code common còn chưa hỗ trợ
-
Fix những bug còn tồn đọng
Watch Face Blue
Các tuỳ chọn được phép chỉnh sửa trên watch
face này:
+ Style: Thay đổi kiểu kim đồng hồ (Hình
3.2.3).
+ GMT: Toggle cho phép bật tắt GMT. Nếu
bật GMT - sẽ hiển thị thêm 1 kim đồng hồ
biểu tượng cho một time zone khác (time
zone hiện tại sẽ dựa trên vị trí của người
dùng). Người dùng có quyền thay đổi màu
sắc của kim (Hình 3.2.5) và tuỳ chỉnh time zone mong muốn (Hình 3.2.4).
+ Background color: Thay đổi màu background của mặt đồng hồ (Hình 3.2.6).
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
23
Hình 3.2.1
Hình 3.2.2
Hình 3.2.3
Hình 3.2.4
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
24
Hình 3.2.5
Hình 3.2.6
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân
25
TÀI LIỆU THAM KHẢO
[1]
“Fossil Vietnam Văn hóa và việc làm IT tại Việt Nam. Hãy tìm hiểu ngay hơm nay!,”
ITJobs.com.vn:
Dịch
vụ
tuyển
dụng
dành
cho
dân
IT.
(accessed Dec. 24, 2021).
[2]
“Gerrit Code Review | Gerrit Code Review.” />
(accessed Dec. 24, 2021).
[3]
“14
điều
cần
biết
về
Android
Wear.”
(accessed Dec. 24,
2021).
[4]
“Tổng
quan
về
Android
Wear!,”
Viblo,
Jul.
29,
2015.
a/p/tong-quan-ve-android-wear-1l0rvmkjMyqA (accessed Dec. 24, 2021).
[5]
“Quên
Github
đi,
hãy
dùng
Gerrit,”
kipalog.com.
(accessed Dec. 24, 2021).
Trần Ngọc Thành
Nguyễn Đắc Thiên Ngân