viper
TRANSCRIPT
Architecting iOS Apps with VIPER
BY VOTHANHLONG A.K.A LONG BÚN WITH LOVE
What we are doing here ? 1. What’s VIPER?
2. Why’s VIPER
3. How’s VIPER
4. Let’s try VIPER
5. Bonuse : Unit Testing with VIPER
6. Q&A
P/S : Mặc dù mục lục bằng tiếng Anh cho oai nhưng xin phép trình bày những phần sau bằng ý hiểu bản thân – TIẾNG VIỆT
VIPER LÀ GÌ?
- VIPER hiểu đơn giản là cách tiếp cận trong việc xây dựng kiến trúc một project iOS
Tương tự như MVC, hoặc MVVM ( Model – View – View Model) hoặc MVA ( Model – View – Adapter)
Một kiểu pattern mà lập trình viên CÂN NHẮC tuân thủ khi thực hiện viết code cho dự án.
TẠI SAO TA DÙNG VIPER?
- Mặc dù việc xây dựng kiến trúc của source code tốt không đảm bảo sự thành công của sản phẩm, nhưng nó sẽ khiến cho việc maintain source code được NGON hơn.
-> Không lo bị nghe các lập trình viên kế thừa hoặc khách hàng chửi bới.
TẠI SAO TA DÙNG VIPER? - MVC rất quen thuộc, Apple cũng nói rằng họ áp dụng MVC trong iOS , tuy nhiên khái niệm ViewController khiến chúng ta bối rối.
- Việc bối rối đôi khi dẫn đến một vấn đề nghiêm trọng khi sử dụng ViewController: Mega Massive ViewController. ( Số lượng dòng code trong một file ViewController thường lớn đến mức đáng kinh ngạc)
-> VIPER CÓ THỂ giải quyết ấn đề này một cách dễ dàng
TẠI SAO TA DÙNG VIPER - VIPER luôn cố gắng chia nhỏ ứng dụng ra thành các module nhỏ
-> Cải thiện khả năng viết test cho project.
- Đổi gió, làm mới việc code của chính bản thân mình
-> Tạo ra hứng thú làm việc.
VIPER NHƯ THẾ NÀO? - Bao gồm năm layer: VIEW, INTERACTOR, PRESENTER, ENTITY, ROUTING
VIPER NHƯ THẾ NÀO? - Việc áp dụng VIPER khi xây dựng một ứng dụng sẽ bám sát với các Use Case của ứng dụng đó.
- Các layer của VIPER phải đáp ứng với nguyên lý Single Responsibility
Interactor
- Mỗi một interactor sẽ đại diện cho một use case.
- Interactor chứa business logic
- Interactor thao tác với Entity
Entity - Chính là các model objects
- Entity chỉ được thao tác bởi các Interactor
Presenter
- Là trung gian thao tác giữa Interactor và View.
- Presenter gửi yêu cầu từ View tới Interactor và nhận dữ liệu ngược lại, điều khiển View hoạt động.
View - Nhận thông tin từ Presenter và hiển thị.
Routing - Xứ lý việc điều hướng các màn hình trong một ứng dụng.
Thử áp dụng VIPER? - Thực hiện workshop nhỏ với việc viết một ứng dụng sample cho phép người dùng nhập User name, Password.
- So sánh thông tin nhập vào với cơ sở dữ liệu
- Hiển thị thông báo thành công hoặc thất bại
- Viết test thử ( Nếu đủ thời gian )
Q&A
Feel free to ask questions for me but i’m not sure about the answers.