توضیحات
ما درشرکت ارزش آفرین اطلس در حال توسعه و نگهداری یک پروژه نرمافزاری مبتنی بر 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
- کاهش کد تکراری بین پلتفرمها
- افزایش کیفیت، تستپذیری و نگهداریپذیری پروژه
- بهبود معماری و ساختار ماژولار پروژه
- مشارکت در طراحی مسیر توسعه آینده پروژه چندپلتفرمی