viper

15
Architecting iOS Apps with VIPER BY VOTHANHLONG A.K.A LONG BÚN WITH LOVE

Upload: vo-long

Post on 13-Apr-2017

543 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Viper

Architecting iOS Apps with VIPER

BY VOTHANHLONG A.K.A LONG BÚN WITH LOVE

Page 2: Viper

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

Page 3: Viper

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.

Page 4: Viper

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.

Page 5: Viper

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

Page 6: Viper

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.

Page 7: Viper

VIPER NHƯ THẾ NÀO? - Bao gồm năm layer: VIEW, INTERACTOR, PRESENTER, ENTITY, ROUTING

Page 8: Viper

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

Page 9: Viper

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

Page 10: Viper

Entity - Chính là các model objects

- Entity chỉ được thao tác bởi các Interactor

Page 11: Viper

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.

Page 12: Viper

View - Nhận thông tin từ Presenter và hiển thị.

Page 13: Viper

Routing - Xứ lý việc điều hướng các màn hình trong một ứng dụng.

Page 14: Viper

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 )

Page 15: Viper

Q&A

Feel free to ask questions for me but i’m not sure about the answers.