38 पॉइंट द्वारा xguru 2025-03-12 | 7 टिप्पणियां | WhatsApp पर शेयर करें

आज के मानकों के अनुसार Android ऐप डेवलपमेंट वातावरण का परिचय

  • बिल्ड : gradle
  • बिल्ड सेटिंग: convention plugin
  • dependency मैनेजमेंट : version catalog
  • build cache का परिचय
  • बिल्ड परफ़ॉर्मेंस विश्लेषण : build-scan
  • मॉड्यूल संरचना : feature के अनुसार विभाजन
  • networking - retrofit
  • json mapping - kotlinx serialization
  • persistent data storage - jetpack datastore, room
  • DI - koin
  • image loader - coil
  • UI - compose
  • View और ViewModel के बीच communication - flow
  • code quality management - ktlint , konsist
  • unit test - junit 4

7 टिप्पणियां

 
kipsong133 2025-03-13

अच्छे लेख के लिए धन्यवाद

 
ganadist 2025-03-12

अगर संयोग से Android app build engineer के तौर पर टिक गए किसी व्यक्ति की राय छोड़ूँ तो..

बिल्ड : gradle

चाहे वह बहुत बड़ा हो या जटिल, gradle ही इस्तेमाल करना चाहिए... (दूर देखते हुए) बहुत बड़े या जटिल प्रोजेक्ट्स में gradle की build performance बेहतर करने के लिए नीचे दिए गए प्रोजेक्ट्स पर काम चल रहा है, इसलिए अगर आप बड़े प्रोजेक्ट में gradle इस्तेमाल कर रहे हैं, तो पहले से migration की तैयारी कर लेना अच्छा रहेगा.

मॉड्यूल संरचना : feature के हिसाब से अलग करना

मेरी निजी राय में architecture layer को बेवजह build system में उजागर करने की ज़रूरत नहीं है. मेरे द्वारा मैनेज किए जाने वाले app में feature-api / feature-impl मॉड्यूल को build system में उजागर करने की संरचना रखी गई है.

  • feature-app :
    • डेटा मॉडल, या दूसरे मॉड्यूल्स से जुड़ने वाला interface
  • feature-impl:
    • feature का वास्तविक implementation

इस तरह संरचना करने पर feature-impl के code changes का feature-api को refer करने वाले दूसरे मॉड्यूल्स पर असर नहीं पड़ता (dependency isolation), इसलिए incremental build या build cache hit rate बढ़ाने में काफी मदद मिलती है.

यूनिट टेस्ट - junit 4

लगता है इसमें Google के फैसले ने बड़ी भूमिका निभाई है.

 
ganadist 2025-03-12

लेकिन अगर नवीनतम तकनीक(?) अपनानी हो, तो कई बार JUnit4 अड़चन बन जाता है, इसलिए व्यक्तिगत रूप से मेरी एक छोटी-सी इच्छा है कि JUnit5 पर माइग्रेशन हो जाए।
https://docs.gradle.com/develocity/test-distribution/

junit-vintage-engine का इस्तेमाल करने पर बिना बड़े बदलाव के JUnit4 tests को JUnit5 में चलाया जा सकता है, लेकिन overhead काफ़ी ज़्यादा है। (लगभग 20% तक धीमा हो जाता है)

 
kingori 2025-03-12

वाह, हमारे परिवार के लिए गर्व की बात है।

 
gera1d 2025-03-14

मैं Wilson हूँ!

 
brainer 2025-03-12

हम्म.. वैसे हाल के कुछ वर्षों में एक अजीब-सी प्रवृत्ति देखी जा रही है कि ज़्यादातर startup Flutter चुनते हैं, जबकि META, OpenAI जैसी बड़ी कंपनियाँ native की ओर जा रही हैं..

 
tsboard 2025-03-12

संयोग से मैं भी इस साल एक Android ऐप बनाने की सोच रहा हूँ, इसलिए यह एक उपयोगी गाइड साबित हुई। हाहा