개발린생

Android와 iOS 개발의 공통점 본문

Dev Lab ✧.·˚/Android & iOS

Android와 iOS 개발의 공통점

김블루 2024. 10. 16. 23:02

 

Android와 iOS는 서로 다른 운영체제를 기반으로 하지만, 개발 과정에서 공통적으로 적용되는 개념과 구조가 많은 것 같다.

둘을 동시에 공부할 것이기 때문에 Android와 iOS 개발에서 공통적으로 사용할 수 있는 필수 개념들을 ChatGPT를 통해 정리해봤다.

 

한번에 많은 지식을 습득하기는 어려우니 키워드를 하나하나씩 파헤칠 예정..


ChatGPT, Android와 iOS 개발의 공통적인 부분이 있을까?

 

1. 아키텍처 패턴 (MVC, MVVM 등)

 

Android와 iOS 모두 MVC(Model-View-Controller), MVVM(Model-View-ViewModel) 같은 아키텍처 패턴을 따른다.
이를 통해 비즈니스 로직과 UI를 분리하여 유지보수성을 높이고, 코드의 구조를 깔끔하게 유지할 수 있다.

  • Android: Jetpack ComposeMVVM 패턴이 많이 사용된다.
  • iOS: SwiftUIMVVM 패턴을 주로 사용한다.

 

2. 비동기 처리

Android와 iOS 모두 비동기 작업을 처리하는 메커니즘을 제공하여, 네트워크 요청이나 파일 처리 등 시간이 오래 걸리는 작업이 UI 스레드를 차단하지 않도록 한다.

  • Android: Kotlin의 Coroutines 또는 RxJava를 주로 사용한다.
  • iOS: GCD(Grand Central Dispatch) 또는 Combine 프레임워크를 사용한다.

 

3. 네트워킹 및 API 통신

서버와 데이터를 주고받는 방식은 두 플랫폼 모두 동일하며, RESTful API와 HTTP 통신을 사용한다.
데이터는 주로 JSON 형식으로 주고받는다.

  • Android: Retrofit, OkHttp 등의 라이브러리를 사용해 네트워크 작업을 처리한다.
  • iOS: URLSession 또는 외부 라이브러리인 Alamofire를 사용한다.

 

4. 데이터베이스 사용

앱 내에서 영구적으로 데이터를 저장하기 위해 두 플랫폼 모두 로컬 데이터베이스를 사용한다.

  • Android: Room 라이브러리로 SQLite를 추상화하여 더 쉽게 사용한다.
  • iOS: Core Data 또는 SQLite를 직접 사용한다.

 

5. 앱 생명주기 관리

Android와 iOS 모두 앱이 실행되는 동안의 상태 변화를 관리하는 생명주기(Lifecycle)를 제공한다.
포그라운드, 백그라운드, 재실행 등 다양한 상태를 관리할 수 있다.

  • Android: ActivityFragment의 생명주기 메서드를 사용한다.
  • iOS: UIViewController의 생명주기 메서드를 사용한다.

 

6. UI 컴포넌트 및 레이아웃 관리

두 플랫폼 모두 버튼, 텍스트, 이미지 등의 UI 컴포넌트를 사용하여 화면을 구성하며, 반응형 레이아웃을 지원한다.

  • Android: XML 또는 Jetpack Compose를 통해 UI를 구성하고, ConstraintLayout을 사용해 복잡한 레이아웃을 처리한다.
  • iOS: Storyboard 또는 SwiftUI로 UI를 구성하며, Auto Layout을 사용해 다양한 화면 크기를 지원한다.

 

7. 의존성 주입 (Dependency Injection)

객체 간 의존성을 관리하기 위해 두 플랫폼 모두 의존성 주입을 사용할 수 있다.
이를 통해 객체 생성과 주입을 분리하여 코드의 모듈성을 높이고, 테스트가 용이해진다.

  • Android: Hilt, Dagger 등을 통해 의존성 주입을 관리한다.
  • iOS: Swinject 등의 외부 라이브러리를 사용해 의존성 주입을 구현할 수 있다.

 

8. 푸시 알림 (Push Notification)

두 플랫폼 모두 푸시 알림을 지원하여 서버에서 사용자에게 알림을 전달할 수 있다.

  • Android: Firebase Cloud Messaging (FCM)을 사용한다.
  • iOS: Apple Push Notification Service (APNs)를 사용한다.

 

9. 앱 스토어 배포

Android는 Google Play Store, iOS는 Apple App Store를 통해 앱을 배포하며, 배포 과정에서 심사와 승인이 필요하다.

  • Google Play Store는 심사가 비교적 빠르고, Apple App Store는 좀 더 엄격한 심사 과정을 거친다.

> 개인적으로 체감하기에는 요새 Google도 한 까다로움한다..

 

 

10. 테스트 및 디버깅

두 플랫폼 모두 앱 품질 관리를 위해 유닛 테스트와 UI 테스트를 제공하며, 다양한 디버깅 도구도 지원한다.

  • Android: JUnit, Espresso로 테스트를 진행한다.
  • iOS: XCTest를 통해 테스트를 진행한다.

Android와 iOS는 서로 다른 플랫폼이지만, 위에서 언급한 공통적인 개념과 구조를 통해 양쪽의 개발 경험을 공유할 수 있다.
이를 바탕으로 크로스 플랫폼 개발도 고려할 수 있으며, 각 플랫폼에 특화된 기능을 이해하는 데 도움이 될 것이다.