개발 · 프로그래밍

/

모바일 앱 개발

Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)

인스타그램 앱을 따라만들면서 배우는 실전 SwiftUI강의

(5.0) 수강평 8개

수강생 91명

Thumbnail

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

이런 걸
배워요!

  • MVVM

  • SwiftUI

  • Firebase

  • Instagram

Instgram Clone강의 출시!!!!

지난 강의 이후 많은 분들이 기다려주셨던 MVVM, Firebase를 이용한

Instagram Clone강의를 드디어 출시했습니다.

모든 코드에 MVVM 구조 적용

MVVM 패턴이 어떻게 태어났는지, 왜 쓰고, 어떤 부분을 신경써서 사용해야 하는지 등

MVVM 패턴에 대한 자세한 사용법을 배우고 해당 방식으로 코딩을 진행합니다.

(↓↓↓수업에서 사용되는 키노트 화면 캡처↓↓↓)


모든 기능에 Firebase 적용

Firebase 서버를 같이 만들고 사용합니다.

(Firebase란 구글에서 제공하는 아주 쉬운 서버를 의미합니다.)

인스타그램에서 업로드하는 게시글 정보, 사진, 유저정보등을 이 Firebase에 저장하고 다른 여러기기에서 가져올 수 있습니다.


Instagram Clone 기능 예시

(아래 캡쳐된 모든 기능을 강의에서 구현합니다.)

1. 회원가입 기능 구현


Email, Password, name, username을 기입하여 Firebase 서버로 해당 회원정보를 가입시킵니다.

2. 로그인 기능 구현


회원가입된 Email, password 정보를 통하여 해당 회원정보로 로그인할 수 있습니다.

3. 프로필, 프로필 편집 기능 구현


현재 로그인 된 계정의 회원정보를 수정할 수 있습니다.

4. 게시글 업로드 기능 구현


인스타그램의 메인 기능인 게시글을 업로드 할 수 있습니다.

게시글을 업로드하면, 피드뷰(1탭)과 프로필뷰(5탭)에서 게시글을 확인할 수 있습니다.

또한 5탭의 사용자 게시물 갯수의 카운트도 증가합니다.

5. 검색탭 구현


검색탭에서 회원가입된 다른 사용자들을 검색할 수 있습니다.

6. 팔로잉 기능 구현


다른 계정을 팔로잉 할 수 있습니다.

팔로잉하면 타겟 계정의 팔로워와 현재 계정의 팔로잉 숫자가 1씩 증가합니다.

7. 좋아요 기능 구현


좋아요 기능 또한 구현합니다.

해당 게시글의 하트버튼을 클릭하여 좋아요를 표시할 수 있습니다.

해당 게시글의 누적된 좋아요 수 또한 확인 가능합니다.

8. 댓글 기능 구현


댓글 페이지를 만들어서 해당 게시물에 남겨진 모든 댓글을 확인할 수 있습니다.

또한 현재 사용자의 새로운 댓글도 등록가능합니다.

9. 모든 기능은 Firebase 서버와의 통신으로 이루어집니다.


위에 gif로 보여드린 모든 기능은 Google Firebase 서버와의 통신을 통해 구현되었습니다.

아이폰 기기에서 변경된 모든 데이터는 Google Firebase에 보내고, 수정된 사항을 아이폰 기기에서 다시 로딩합니다. (↓↓↓ Firebase와 통신하는 모습 ↓↓↓)

폰에서 작성된 정보가 서버에 반영되는 모습

A폰에서 올린 게시글과 댓글을 B폰에서 확인할 수 있는 모습

이런 것들을 배워요

#Swift 중급 문법

기초 Swift 문법에 이어서, 좀더 복잡한 구조를 이해하고 사용할 수 있는 다양한 Swift 문법에 대해 배워 나갑니다.

  • Optional: if-let, guard-let, 옵셔널 바인딩, nil-coalescing

  • Error Handling: try, try?, try!, do-catch

  • Async-Await: Task, async, await, async-let(동시 실행)

  • extension

  • enum

  • static function, static variable

  • switch-case

  • ...

#다양한 SwiftUI 기능들

강의의 핵심 주제인 여러가지 SwiftUI 프레임워크의 기능들을 공부합니다.

수강하시는 여러분들이 새로운 앱을 만들때 필요할만한 기능들을 최대한 눌러 담아 강의를 구성하였습니다.

  • NavigationStack, NavigationLink : 화면 이동

  • LazyVStack(LazyHStack): 1열짜리 리스트 뷰

  • LazyVGrid(LazyHStack), GridItem : n열짜리 리스트 뷰

  • TextField, SecureField(비밀번호 입력시)

  • .refreshable: 끌어서 새로고침

  • .task, .onAppear, onChange: 화면 변화 감지

  • .sheet: 모달 창

  • .searchable(검색창)

  • List vs LazyVStack vs ForEach의 차이 비교

  • scaledToFit, scaledToFit, aspectRatio: 이미지 채우기 방식 비교

  • @State, @Binding, @Bindable, @Environment: data flow 프로퍼티 래퍼들

  • PhotosPicker: 핸드폰에 저장된 이미지에서 사진 고르기


  • ...

#외부 라이브러리 사용

다른 사람이 미리 짜놓은 코드 등을 프로젝트에 추가하여 프로젝트에서 다양한 기능을 구현합니다.

또한 비동기와 캐싱을 정확히 이해하기 위해

Kingfisher vs AsyncImage vs 동기방식의 이미지 로딩

이 3가지를 각각 수행하여 비교해봅니다.

  • KingFisher: 이미지를 비동기적으로 다운받고 캐싱하는 외부 라이브러리

  • Firebase, FireStore, FirebaseAuth: 프로젝트에 외부 서버를 추가하여 다양한 데이터를 외부에 저장합니다.(게시글 정보, 계정 정보, 이미지 정보)

강의별로 나누어진 예제 코드

최종 완성 코드만 제공하는게 아닌

각 1강의 마다 쪼개진 강의 코드를 제공합니다.

코드의 달라진 부분을 쉽게 찾을 수 있어요

(↓↓↓실제 예제코드 캡처↓↓↓)


선수 강의

아래 강의를 듣고 현재 강의를 듣는 것을 추천드립니다.

혹시 Swift와 SwiftUI의 기초적인 지식을 갖고 계신다면 이 강의를 바로 들어도 괜찮지만, 어려운 부분이 있을 수 있습니다.

(혹시 이 강의만 들으실 분은 아래 강의의 목차를 확인하여 강의에서 설명하는 Swift, SwiftUI 개념들을 숙지하고 있는지 체크 부탁드립니다.)

진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)


이해하기 쉬운 강의를 만들기 위해 노력했습니다.


저도 초보시절이 있었고, 어려운 개념을 학습할 때마다 힘들었던 시기가 있었습니다.

그때의 기억을 되살리며 강의에서 생략된 개념이 없도록 최대한 신경썼습니다.

어렵더라도 최대한 강의에 나오는 모든 코드에 대해 설명하려고 노력하였습니다.

복붙하는 코드는 최소화하였고, 수강생들이 이해하기 쉽도록 코드를 같이 타이핑하면서 설명합니다.


지난 강의에서도 이부분을 많이 알아주셔서 너무 감사드렸습니다.

이번 강의에서도 여러분들의 SwiftUI 학습에 길잡이가 될 수 있도록 노력하였습니다.

(↓↓이전 시리즈인 왕초보 iOS강의 리뷰↓↓)



Q. 수강 기간의 제한이 있나요?

A. 아뇨, 한번의 구매로 평생 학습이 가능합니다.

아무런 수강기한의 제한이 없습니다. 언제든지 다시 복습할 수 있도록 저의 모든 강의는 수강기한이 무제한입니다.


Q. Firebase 서버를 만드는데 비용이 드나요?

A. 아뇨, 제 강의에서 사용하는 기능은 전부 무료입니다.


Q. 초보자도 쉽게 들을 수 있나요?

A. 개발을 처음 배우는 분에게는 어려울 수 있습니다. 하지만 Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024) 강의를 먼저 학습하시면 이 강의는 충분히 이해하실 수 있도록 구성하였습니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 실전에서 배우는 SwiftUI코드 학습

  • MVVM을 배우고 싶으신 분

  • Firebase로 자신만의 서버통신을 만들어 보고 싶으신 분

선수 지식,
필요할까요?

  • 선수강의: 진짜 왕초보 iOS 배우기(SwiftUI)

안녕하세요 😀

누구나 쉽게 iOS 개발을 할 수 있도록 돕고 싶은

iOS 개발자 애구마입니다.

강의에 필요한 예제 만드는것을 좋아하고, 입문자에게 필요한 강의를 만들기 위해 연구합니다.

 

 

 

커리큘럼

전체

76개 ∙ (10시간 2분)

수업 자료

가 제공되는 강의입니다.

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

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!