새로운 Android 개발자는 Compose 또는 XML을 배워야 합니까?

앞으로 3개월 동안 저는 학부생들에게 Android 개발을 가르치는 자원봉사를 할 것입니다. 그래서 저도 이 질문에 직면했습니다. 새로운 개발자에게 Compose를 가르쳐야 할까요 아니면 XML을 가르쳐야 할까요?

제 생각에는 야심 찬 Android 개발자는 Compose를 배우기 시작해야 합니다. 다음은 그 이유 4가지입니다.

1. 생산 준비



Compose가 프로덕션 준비가 되었습니다. Twitter, Play Store, Airbnb는 이미 Compose를 사용하고 있는 회사입니다. one year since Compose reached version 1.0 이상입니다.

생산 준비 완료란 무엇을 의미합니까?
  • 중대한 버그나 불필요한 문제 해결이 없습니다.
  • API는 안정적이고 일관되며 직관적입니다.
  • 성능 문제가 없으며 사용자 인터페이스(UI)가 원활하게 렌더링됩니다.

  • 1년 동안 백엔드 엔지니어로 일하다가 안드로이드 개발로 돌아오면 Compose로 복잡한 UI를 만들 수 있을지 궁금합니다. 개념 증명으로 실제 앱의 일반적인 요구 사항(계층화된 UI, 사용자 지정 동작, 여러 UI 섹션 등)이 있는 빠른 상거래 앱인 a clone of Astro을 만들었습니다.

    따라서 Compose를 학습할 때 너무 많은 문제가 발생할 것을 걱정할 필요가 없습니다. Compose를 사용하여 실제 앱을 게시할 수 있습니다.

    2. 단순성



    이것은 XML을 사용하여 UI를 작성하는 방법의 예입니다.

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <TextView
            android:id="@+id/tvName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hi, my name is Aldo" />
    
        <ImageView
            android:id="@+id/ivProfile"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    
        <TextView
            android:id="@+id/tvRole"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="I'm an Android developer 🤖" 
            />
    
    </LinearLayout>
    


    이것이 Compose를 사용하여 UI를 작성하는 방법입니다.

    Column {
        Text("Hi, my name is $name", style = TextStyle(
            fontWeight = FontWeight.Bold))
        AsyncImage(model = "https://example.com/img/user.png")
        Text("I'm an Android developer 🤖")
    }
    


    이 간단한 사용 사례에서도 Compose가 더 적은 코드 줄을 사용한다는 것을 알 수 있습니다.

    코드가 단순할수록 더 쉽게 배우거나 가르칠 수 있습니다.

    다음을 배울 필요가 없습니다.
  • XML(Kotlin만 사용)
  • XML을 Kotlin 클래스에 바인딩
  • ConstraintLayout을 사용하여 보기 계층을 평면화하여 성능을 개선합니다
  • .

    즉, ViewModel, 테스트, 코루틴 및 Jetpack 라이브러리와 같은 다른 Android 주제를 학습할 시간이 더 많습니다.

    3. 친숙함



    다른 플랫폼에서 선언적 UI를 배웠다면 편안하게 느낄 것입니다.

    iOS(SwiftUI) 및 크로스 플랫폼(Flutter)용으로 동일한 UI를 빌드하는 코드 스니펫을 살펴보세요.

    VStack {
        Text("Hi, my name is \(name)!")
            .fontWeight(.bold)
        AsyncImage(url: URL(string: "https://example.com/img/user.png"))
        Text("I'm an iOS developer 🍏")
    }
    



    Column(
        children: const<Widget>[
            Text('Hi, my name is $name', style: TextStyle(
                fontSize: FontWeight.bold)),
            Image.network('https://example.com/img/user.png')
            Text('I\'m a Flutter developer ⬅️')
        ]
    )
    


    좀 비슷해 보이지 않나요?

    새로운 Android 개발자는 정규직 Android 개발자로서의 경력을 추구하지 않을 가능성이 있습니다. Flutter, iOS, 백엔드를 탐색 중이거나 개발자로서의 경력을 추구하지 않을 수도 있습니다.

    Compose를 사용하여 다른 플랫폼에 적용할 수 있는 개념을 배웠습니다.

    4. 지원



    도서관이 아무리 좋아도 처음에는 새로운 것을 배우는 것이 어려울 수 있습니다. 어려움을 겪고 있을 때 Compose는 공식 Android 문서에서 수많은 커뮤니티 기사에 이르기까지 도움이 되는 많은 리소스를 제공합니다. 몇 가지를 언급하자면:
  • StackOverflow
  • Codelabs
  • Official Compose app samples
  • Code snippets

  • 널리 사용되는 라이브러리와의 통합에 대해서도 걱정할 필요가 없습니다. Jetpack Components(ViewModel, Navigation, Hilt 등), Glide 또는 Koin과 같은 인기 있는 라이브러리는 Compose 코드와 호환됩니다.

    Compose는 여전히 Google에서 적극적으로 지원하므로 버그나 기능 요청을 발견하더라도 다음 버전에서 해결될 것으로 예상할 수 있습니다.

    요약



    결론적으로 Compose는 이제 막 Android 개발을 시작하는 개발자에게 안전한 선택입니다. 레거시 프로젝트에서는 XML이 여전히 우세하지만 Compose는 네이티브 Android UI를 빌드하기 위한 최신 툴킷입니다. 계속해서 첫 번째 앱에서 Compose를 사용하세요!

    메모


  • 저는 praktisimengajar.id 정부 프로그램의 일환으로 Universitas Musamus Merauke(UNMUS)에서 Pemograman Mobile 과정을 가르칠 것입니다. 이런 기회를 주셔서 감사합니다!
  • 솔직히 말해 XML은 Kotlin에 비해 장황한 선언적 UI이기도 합니다. 그러나 XML에서는 여전히 많은 작업을 위해 명령형 코드를 작성해야 합니다.
  • 표지 사진은 weston m이 촬영함
  • 좋은 웹페이지 즐겨찾기