توضیحات

ما درشرکت ارزش آفرین اطلس در حال توسعه و نگهداری یک پروژه نرم‌افزاری مبتنی بر Kotlin Multiplatform - KMP هستیم که هدف آن تولید خروجی پایدار، مقیاس‌پذیر و قابل توسعه برای سه پلتفرم Android، iOS و Web است. به همین منظور، به دنبال جذب یک برنامه‌نویس ارشد اندروید هستیم که علاوه بر تسلط کامل بر توسعه اندروید با  Kotlin  و  Jetpack Compose، تجربه عملی در طراحی معماری چندپلتفرمی، توسعه ماژول‌های مشترک، مدیریت وابستگی‌ها، ارتباط با سرویس‌های Backend و تولید خروجی قابل اتکا برای پلتفرم‌های مختلف را داشته باشد.

فرد مورد نظر باید توانایی تحلیل نیازمندی‌های فنی، طراحی ساختار مناسب پروژه، توسعه و نگهداری کدهای مشترک بین پلتفرم‌ها، همکاری با تیم‌های Web، Backend،  UI/UX و DevOps را داشته باشد و بتواند نقش مؤثری در تصمیم‌گیری‌های معماری و فنی پروژه ایفا کند.

 مهارت‌ها و تخصص‌های الزامی

 Kotlin  و Kotlin Multiplatform

  • تسلط کامل بر زبان Kotlin و مفاهیم پیشرفته آن
  • تجربه عملی در توسعه پروژه‌های Kotlin Multiplatform - KMP
  • آشنایی کامل با ساختار پروژه‌های Multiplatform و Source Setهای مختلف
  • توانایی طراحی و توسعه ماژول‌های مشترک بین Android، iOS و Web
  • تسلط بر مفاهیم expect/actual برای مدیریت تفاوت‌های پلتفرمی
  • آشنایی با Gradle، Kotlin DSL و مدیریت وابستگی‌ها در پروژه‌های KMP
  • تجربه کار با Kotlin Coroutines و Flow
  • توانایی مدیریت State، Error Handling و Async Operations در لایه‌های مشترک

Android Development

  • تسلط کامل بر توسعه اپلیکیشن Android با Kotlin
  • تجربه حرفه‌ای در استفاده از Jetpack Compose
  • آشنایی کامل با Android SDK، Android Studio و ابزارهای توسعه اندروید
  • تسلط بر Lifecycle، Navigation، ViewModel، State Management و Dependency Injection
  • تجربه کار با معماری‌های رایج مانند MVVM، MVI، Clean Architecture
  • آشنایی با Material Design و اصول طراحی رابط کاربری در Android
  • تجربه توسعه پروژه‌های ماژولار و مقیاس‌پذیر در Android

 iOS   در بستر KMP

  • آشنایی با نحوه تولید خروجی iOS از پروژه‌های Kotlin Multiplatform
  • توانایی تعامل با Xcode و ساختار پروژه iOS
  • آشنایی با نحوه استفاده از Frameworkهای تولیدشده توسط KMP در iOS
  • آشنایی نسبی با Swift و SwiftUI مزیت محسوب می‌شود
  • آشنایی با چالش‌های interoperability بین Kotlin و Swift
  • توانایی تحلیل و رفع مشکلات Build و Integration در خروجی iOS

 Web در بستر KMP

  • آشنایی با تولید خروجی Web در Kotlin Multiplatform از طریق Kotlin/JS، Kotlin/Wasm یا Compose Multiplatform for Web
  • درک مناسب از مفاهیم پایه Web شامل HTML، CSS، JavaScript و ساختار مرورگر
  • آشنایی با محدودیت‌ها و تفاوت‌های پلتفرم Web نسبت به Android و iOS

معماری و طراحی نرم‌افزار

  • تسلط بر اصول طراحی نرم‌افزار، SOLID، Clean Code و Design Patterns
  • تجربه عملی در طراحی پروژه‌های ماژولار، مقیاس‌پذیر و قابل نگهداری
  • توانایی تصمیم‌گیری درباره اینکه چه بخش‌هایی باید مشترک باشند و چه بخش‌هایی باید به‌صورت اختصاصی برای هر پلتفرم پیاده‌سازی شوند
  • آشنایی با Domain Layer، Data Layer، Repository Pattern، Use Case Pattern و Dependency Inversion
  • توانایی تحلیل نیازمندی‌های فنی و ارائه راهکار مناسب در سطح معماری

ارتباط با سرویس‌ها و داده

  • تجربه کار با RESTful APIs
  • آشنایی با Serialization/Deserialization در Kotlin
  • تجربه کار با ابزارهایی مانند Ktor Client، Retrofit، OkHttp یا ابزارهای مشابه
  • آشنایی با مدیریت Token، Authentication، Refresh Token و Headerهای امنیتی
  • تجربه کار با Local Storage، Database یا Cache در پروژه‌های موبایل و چندپلتفرمی
  • آشنایی با SQLDelight، Room، DataStore یا ابزارهای مشابه مزیت محسوب می‌شود

تست و کیفیت کد

  • تجربه در نوشتن Unit Test برای منطق‌های مشترک و اختصاصی
  • آشنایی با JUnit، Mockito، MockK، Espresso یا ابزارهای مشابه
  • آشنایی با تست در commonTest در پروژه‌های KMP
  • توانایی طراحی کد تست‌پذیر و قابل نگهداری
  • تجربه Code Review و رعایت استانداردهای کیفیت کد
  • آشنایی با Static Code Analysis و ابزارهایی مانند Detekt یا Ktlint مزیت محسوب می‌شود

ابزارها و فرآیند توسعه

  • تسلط بر Git و کار با GitLab یا GitHub
  • تجربه کار در تیم‌های Agile/Scrum
  • آشنایی با CI/CD برای Build و Release خروجی‌های Android، iOS و Web
  • تجربه مدیریت Versioning، Build Variantها، Flavorها و Release Process
  • توانایی مستندسازی فنی و انتقال دانش به سایر اعضای تیم

مهارت‌های امتیازی

  • تجربه عملی در پروژه‌های بزرگ و Enterprise
  • تجربه Migration پروژه Android به Kotlin Multiplatform
  • تجربه کار با Design System مشترک بین پلتفرم‌ها
  • آشنایی با امنیت اپلیکیشن‌های موبایل، Obfuscation، Certificate Pinning و Secure Storage
  • آشنایی با Firebase، App Center، Sentry، Crashlytics یا ابزارهای مشابه
  • تجربه کار با پروژه‌های بانکی یا مالی مزیت مهم محسوب می‌شود

خروجی‌های مورد انتظار از این نقش

  • توسعه و نگهداری هسته مشترک پروژه KMP
  • تولید خروجی پایدار برای Android، iOS و Web
  • کاهش کد تکراری بین پلتفرم‌ها
  • افزایش کیفیت، تست‌پذیری و نگهداری‌پذیری پروژه
  • بهبود معماری و ساختار ماژولار پروژه
  • مشارکت در طراحی مسیر توسعه آینده پروژه چندپلتفرمی

 

To see more jobs that fit your career