Inflearn brand logo image
Inflearn brand logo image
BEST

냉동코더의 알기 쉬운 Modern Android Development 입문

이 강의의 목적은 Android Jetpack을 중심으로 한 안드로이드 라이브러리의 동작 원리를 이해하고 앱에 적용하는 법을 알기 쉽게 전달하는 것입니다.

초급자를 위해 준비한
[모바일 앱 개발] 강의입니다.

이런 걸 배울 수 있어요

  • Modern Android Development Skills

  • MVC, MVP, MVVM의 차이

  • Jetpack Library의 이론과 사용법

  • Android Architecture Components의 이론과 사용법

  • 안드로이드 코드의 테스트 자동화

핵심만 간추린 이론을 통해 확실하게 배우고,
실습에서는 바로 앱을 만들어 균형있게 학습해요! 💻

안드로이드 로켓타고
힘차게 출발! 🚀

Jetpack은 구글에서 만든, 개발자들이 쉽고 빠르게 좋은 퀄리티의 애플리케이션을
만들 수 있도록 도와주는 라이브러리와 도구를 모아둔 모음집입니다.

안드로이드 라이브러리의 사용법을 학습하는 가장 좋은 방법은 Google Developers의 공식 문서를 참조하는 것이지만, 설명이 복잡한 경우가 많고 한글 문서는 빠르게 업데이트 되지 않는 경우도 많습니다.

그래서 알기쉬운 안드로이드 강의를 한 번 만들어보기로 했습니다. 이 강의에서는 아키텍처 패턴과 Android Jetpack Library의 사용법, 그리고 의존성 주입과 테스트 자동화에 대한 내용을 다룹니다.


같은 고민이라면
함께해요 😎

안드로이드 앱에 Jetpack과
MVVM를 적용해보고 싶은 분

Google Developers의
공식문서가 이해되지 않는 분

Jetpack 라이브러리
체계적으로 배우고싶은 분


강의가 궁금해요 ✨

이 강의만의 특징

  • 장황한 Google Developers 공식문서에서 핵심만을 간추려 슬라이드로 설명합니다.
  • 라이브러리에 대한 설명이 끝나면 바로 앱을 만드는데 적용해 봅니다.
  • 이론과 실습이 거의 1:1 비중을 가지고 있어 균형있는 학습이 가능합니다.
  • 라이브러리의 구조를 이해하는데 필요하지 않은 코드는 가능한 배제했습니다.
  • 아키텍처 구축과 관련있는 가장 핵심적인 Jetpack 라이브러리를 모두 다룹니다


강의를 들은 후 수강생의 변화 😁

🏃‍♀️ MVC, MVP, MVVM 구조의 차이를 이해하고 앱에 적용할 수 있게 됩니다.

🏃‍♀️ Jetpack 라이브러리의 원리를 이해하고 사용할 수 있게 됩니다.

🏃‍♀️ 의존성 주입 (Dependency Injection)을 이해하고 적용할 수 있게 됩니다.

🏃‍♀️ 테스트 자동화의 중요성과 안드로이드의 코드 테스트 방법을 학습하게 됩니다.


세션별로 하나씩 배워요 🔎

섹션 0 <들어가기>

  • MVC, MVP, MVVM 구조의 차이를 설명하고 Jetpack이 생긴 이유를 알아봅니다.

섹션 1
<Android Architecture Components 이론>

  • AAC인 ViewBinding, ViewModel, Lifecycle, LiveData, DataBinding의 원리와 사용법에 대해 설명합니다. 또 Repository 패턴의 사용법에 대해서도 설명합니다.

섹션 2 <책 검색앱 만들기>

  • 섹션 1에서 배운 내용을 적용하여 책 검색을 하는 앱을 만들어 봅니다.

섹션 3 <보강 이론>

  • 섹션 2에서 앱을 만들때 적용한 기술 중 AAC에 속하지 않는 기술의 이론을 추가적으로 설명합니다.

섹션 4 <Jetpack Navigation>

  • Jetpack Navigation을 앱에 적용하여 화면전환을 하는 방법에 대해 알아봅니다.

섹션 5 <Jetpack Room>

  • Jetpack Room을 앱에 적용하여 SQLite 데이터베이스를 다루는 법에 대해 알아봅니다.

섹션 6 <Kotlin Flow>

  • Live Data 대신 Kotlin Flow를 이용해 UI를 갱신하는 법에 대해 알아봅니다.

섹션 7 <Jetpack DataStore>

  • Shared Preferences 대신 Jetpack DataStore를 이용해 간단한 데이터를 저장하는 법에 대해 알아봅니다.

섹션 8 <Jetpack Paging>

  • Jetpack Paging을 이용해 무한히 스크롤되는 데이터 스트림을 구축하는 법에 대해 알아봅니다.

섹션 9 <Jetpack WorkManager>

  • Jetpack WorkManager를 이용해 백그라운드 작업을 수행하는 법에 대해 알아봅니다.

섹션 10 <Dagger-Hilt>

  • 의존성 주입이 왜 중요한지 설명하고 Hilt로 의존성을 주입하는 법에 대해 알아봅니다.

섹션 11 <Gradle with Kotlin script>

  • Kotlin으로 build.gradle 스크립트를 작성하는 법에 대해 알아봅니다.

섹션 12 <마치며>

  • 지금까지 만들어 본 앱의 MAD Score를 평가해 봅니다.

Appendix <Jetpack Test>

  • 안드로이드의 테스트 자동화에 대해 알아봅니다.

 

예상 질문 Q&A 💬

Q. 왜 이 강의를 들어야 하나요?

Jetpack 라이브러리를 다루는 방법을 정말 알기쉽게 설명해드립니다.

Q. Jetpack Library의 특징은 무엇인가요?

안드로이드를 구조적으로 안전하게 하는 핵심적인 기능을 포함하고 있으며, 구글이 관리하기 때문에 안정적인 유지보수가 이루어지는 중요한 라이브러리입니다.

Q. Jetpack Compose도 설명하시나요?

Jetpack Compose는 정식버전이 된지 얼마 되지않아 아직도 변경이 많이 발생하는 API이므로 이 강의에서는 다루지 않습니다.

Q. 강의를 듣기 전 준비해야 할 것이 있나요?

컴퓨터에 안드로이드 스튜디오를 설치해 주세요. 코틀린의 기본문법을 공부하고 오시면 더 좋습니다.


그 외의 내용

- 소스코드 📑

이 강의에서는 3개의 앱을 만들었습니다.
앱의 소스코드는 제 Github repository에서 다운받으실 수 있습니다. (앱 소스코드 클릭)

  1. Architecture Pattern과 Android App Architecture 강의에서 사용한 앱 소스코드
  2. Part 1. Android Architecture Components 이론에서 사용한 앱 소스코드
  3. 강의 전체에서 제작한 책 검색 앱 소스코드

- 라이브러리 버전 ⚠️

이 강의에서 사용된 안드로이드 라이브러리는 2022/04/25 기준 최신 버전을 채택하였습니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • MVVM 구조를 앱에 적용하고 싶으신 분

  • Jetpack 사용법을 쉽게 이해하고 싶으신 분

  • 의존성 주입을 쉽게 이해하고 싶으신 분

  • 테스트 자동화를 왜 해야하는지 이해하고 싶으신 분

선수 지식,
필요할까요?

  • 안드로이드 기초

  • Kotlin 기초

안녕하세요
냉동코더입니다.

556

수강생

29

수강평

144

답변

4.9

강의 평점

4

강의

이해하기 쉬운 개발강의를 만들기 위해 노력하고 있습니다.

 

* 냉동코더의 유튜브

https://www.youtube.com/channel/UC6V7LBEgcoTZUUgUU0Jv3xg

* 냉동코더의 기술블로그

https://cliearl.github.io/

더보기

커리큘럼

전체

46개 ∙ (7시간 27분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

18개

4.9

18개의 수강평

  • anjungmin927429님의 프로필 이미지
    anjungmin927429

    수강평 1

    평균 평점 5.0

    5

    91% 수강 후 작성

    Tôi thực sự rất thích bài giảng 👍 Mã được cung cấp trong bài giảng không tạo ra bất kỳ lỗi nào. Tôi thích nó vì nó khác với các bài giảng khác trong phần này (bạn không phải mất thời gian sửa lỗi). Thật tuyệt khi bỏ qua quá trình viết mã nhanh chóng vì nó tiết kiệm thời gian và không gây nhàm chán. Trong quá trình refactor bằng công nghệ, sắp xếp nội dung thật hay, nghĩ rằng đây là những công nghệ mình tìm thấy và sử dụng trên blog. Nhìn chung, tôi đã sắp xếp những gì tôi biết, nhưng tôi nghĩ tôi cần phải nghe lại bài giảng và biến nó thành của riêng mình đối với những gì tôi chưa biết. Cảm ơn bạn đã tạo một khóa học Android hoàn toàn không phổ biến.

    • frozencoder
      지식공유자

      Woowa, cảm ơn bạn đã xem. Tôi rất vui vì bài giảng hữu ích. Bạn đã sắp xếp kho lưu trữ gọn gàng, cảm ơn bạn đã chăm chỉ học tập :-)

  • binsoopark님의 프로필 이미지
    binsoopark

    수강평 8

    평균 평점 4.9

    5

    100% 수강 후 작성

    Đây là một trong số ít bài giảng hay giải thích MAD một cách tử tế. Có rất nhiều bài học nên tôi sẽ phải ôn lại nhiều, nhưng tôi nghĩ nó sẽ giúp ích rất nhiều cho cá nhân tôi nếu tôi hiểu đúng bài giảng này. Tôi đã học được rất nhiều 😊

    • frozencoder
      지식공유자

      Park Soo-bin, cảm ơn bạn đã đánh giá có giá trị. Tôi rất vui vì những nỗ lực của tôi để làm cho bài giảng có chất lượng cao và dày đặc đã được thực hiện tốt :)

  • eunjizzang님의 프로필 이미지
    eunjizzang

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    Tôi đã từng sử dụng công nghệ jetpack, nhưng tôi muốn biết chính xác hơn nhưng lại lo lắng vì có quá nhiều thông tin nên tôi tham gia bài giảng này. Nó rất hữu ích vì nó giải thích các khái niệm một cách dễ dàng và chính xác. Đặc biệt, thay vì học riêng công nghệ jetpack, hãy áp dụng tất cả trong một dự án & Thật tuyệt khi có thể hiểu được quy trình tổng thể trong khi tái cấu trúc. Tôi nghĩ việc trả lời nhanh các câu hỏi cũng là một lợi thế lớn. Cảm ơn bạn vì bài giảng tuyệt vời :)

    • frozencoder
      지식공유자

      Chunsik, cảm ơn bạn đã đánh giá có giá trị của bạn :)

  • kenshi30681890님의 프로필 이미지
    kenshi30681890

    수강평 2

    평균 평점 5.0

    5

    100% 수강 후 작성

    Trước hết, tôi rất ấn tượng với lời giải thích không chỉ về cách áp dụng thư viện mà còn cả quá trình phát triển thư viện. Thật tuyệt khi tìm hiểu lý do tại sao Jetpeg cung cấp nhiều thư viện như vậy và lý do chúng được cung cấp. Trước đó, tôi nghĩ mình phải nghiên cứu tất cả những điều này và biết cách sử dụng nó thật tốt để có được một công việc. Đó là một nhận thức tuyệt vời đối với tôi, một người luôn đau đầu khi ghi nhớ và sao chép. hướng dẫn. Và đặc biệt đối với Hilt, tôi đã nhận được rất nhiều sự giúp đỡ bằng cách giải thích những thông tin nâng cao, chẳng hạn như nguyên tắc SOLID và cách thức hoạt động của Hilt, những thông tin khó hiểu ngay cả sau khi đọc các tài liệu chính thức, một cách dễ hiểu. Trong tình huống này, tôi nghĩ mình nên thêm chú thích này hoặc phạm vi này, đồng thời chỉ tham khảo các mã mẫu của Code Lab và dán chúng, nhưng bây giờ tôi cảm thấy như mình đã nhận ra nguyên tắc nên tôi rất biết ơn. (phép cộng) Hơn nữa, thật tuyệt khi học cách viết mã kiểm tra, điều này không hề dễ dàng để tôi tự thực hiện (đặc biệt là Kiểm tra giao diện người dùng bằng Espresso), bằng cách thêm không chỉ kiến ​​trúc mà còn cả ứng dụng Kotlin kts và các phần xem trước thử nghiệm. Tôi sẽ áp dụng những gì tôi đã học được vào một dự án hiện có và biến nó thành của riêng mình!

    • frozencoder
      지식공유자

      JI HUN LEE, cảm ơn đánh giá quý giá của bạn. Tôi cảm thấy như ý định bài giảng của mình đã được truyền tải tốt, vì vậy tôi cảm thấy được khen thưởng vì đã làm cho bài giảng trở nên khó :)

  • hhyeok1026님의 프로필 이미지
    hhyeok1026

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    (Bài giảng được đăng sau khi nghe hết bài giảng) (Xin hãy hiểu rằng nó đã được viết ở định dạng được sửa đổi để dễ đọc hơn.) - Những điều cơ bản được tóm tắt trước khi vào phần. Việc dọn dẹp một phần là 'rất' Làm tốt - Chứa đựng kiến ​​thức của người hướng dẫn - Đây là một nhà hàng tuyệt vời cho các bài giảng thử nghiệm. Tôi đã không hiểu nó khi thử nghiệm nó trên Google Code Lab, nhưng tôi đã học được rất nhiều điều từ bài giảng này. (Tôi rất ấn tượng với phần cơ bản xem trước phần thi trong phụ lục. Nếu bạn lo lắng về việc thanh toán, hãy xem tại đây.) - Bài giảng đơn giản, dễ hiểu. Sẽ rất dễ dàng để thành thạo và tôi tự hào khi có được ứng dụng hoàn chỉnh này làm tài liệu tham khảo sau khi nghe tất cả các bài giảng. (Có nhiều phần tôi đã sử dụng trong phòng thí nghiệm mã, vì vậy đối với tôi nó rất dễ dàng vì nó giống như một bài đánh giá, nhưng tôi không biết người khác cảm thấy thế nào) (Tuy nhiên, đơn giản, dễ dàng vừa là ưu điểm vừa là nhược điểm -> Sẽ tốt cho người học nếu bổ sung những phần chưa hiểu hoặc còn thiếu) - Chắc hẳn các thầy Google đã tạo ra Jetpack để tạo ứng dụng dễ dàng hơn... Nội dung khá phong phú và không dễ học. Bạn sẽ không thể có được mọi thứ mình mong muốn khi xem bài giảng này và rất có thể người học sẽ phải tìm và nghiên cứu thêm. - Giá trị học phí rõ ràng, nếu công ty hỗ trợ học tập thì bạn có thể thanh toán mà không cần đắn đo! Nếu bạn có tiền riêng, bạn nên tự mình làm việc đó, nhưng có thể bạn nên mua nó với giá chiết khấu trên Infron và học như một chi phí chìm(?) (Tóm lại, tôi khuyên bạn nên tham gia các bài giảng. Bạn sẽ nhận được Nghe nhiều hơn là không nghe, và trả tiền khi không có thời gian lo lắng về học phí hay chất lượng bài giảng. Nếu xem thì có thể bạn sẽ học đến phần 3) - Khi bạn đặt câu hỏi, người hướng dẫn sẽ trả lời một cách tử tế và nhanh chóng. - Nếu có khóa học Android nào tôi cần vào lần tới, tôi sẵn sàng mua chúng. - Trong buổi review khóa học có review 3 sao, có những phần tôi đồng tình. (Chuyển đổi màn hình được áp dụng theo kiến ​​trúc, file bị chia nhỏ nhiều nên khó tránh khỏi. Phải theo dõi code mới thấy nhưng code bị editor ẩn đi hoặc phải nhấn undo nhiều khi cuộn. Tiết kiệm thời gian để nhấn xem video tiếp theo trên YouTube. Cũng giống như tạm dừng 5 giây, sẽ rất tốt nếu bạn tạm dừng 3-5 giây để hoàn thành mã và dừng video. Ngoài ra, người hướng dẫn có vẻ nói hơi nhanh, nhưng tôi đoán là tôi không giỏi lắng nghe. Có lẽ vì là lớp học tiếng Anh hoặc thư viện nên có một số phần phải nghe nhiều lần mới hiểu được. để nghe đi nghe lại) Tôi rất thích bài giảng tốt. Cảm ơn

    • frozencoder
      지식공유자

      hhyeok1026, cảm ơn đánh giá quý báu của bạn. Tôi cảm thấy được khen thưởng vì đã biên soạn bài giảng vì nó được đánh giá rất tích cực. Như bạn đã nói, tôi không nghĩ rằng tôi nhận ra rằng tốc độ chuyển đổi khóa học nhanh vì tôi là người hướng dẫn. Cảm ơn bạn đã cung cấp thông tin chi tiết :)

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

월 ₩320,227

5개월 할부 시

₩77,000