ஆண்ட்ராய்டு ஆட்டோ ஒருங்கிணைப்பில் உள்ள சவால்களை சமாளித்தல்
ஆண்ட்ராய்டு ஆட்டோவுடன் மொபைல் ஆப்ஸை ஒருங்கிணைப்பது, அறியப்படாத நீரில் வழிசெலுத்துவது போல் உணரலாம், குறிப்பாக பழக்கமான APIகள் பொருந்தாதபோது. டெவலப்பராக, ஆண்ட்ராய்டு ஸ்டுடியோவில் நிலையான பயன்பாட்டை உருவாக்கும்போது சமீபத்தில் இந்தச் சவாலை எதிர்கொண்டேன். எனது திட்டப்பணிக்கு மொபைல் மற்றும் அணியக்கூடிய சாதனங்களுக்கு இடையே நிகழ்நேர ஒத்திசைவு தேவைப்பட்டது, இது தடையின்றி வேலை செய்தது. இருப்பினும், ஆண்ட்ராய்டு ஆட்டோவுடன் பயன்பாட்டை இணைப்பது வேறு கதை. 😅
மொபைல் பயன்பாட்டிலிருந்து ஆண்ட்ராய்டு ஆட்டோவிற்கு உள்நுழைந்த பயனர் ஐடியைப் பெறுவதும் காண்பிப்பதும் நான் சந்தித்த தடைகளில் ஒன்று. நான் முன்பு பயன்படுத்திய அணியக்கூடிய APIகள் தர்க்கரீதியாகத் தோன்றின, ஆனால் Android Auto இன் தனித்துவமான அமைப்பு காரணமாக பொருந்தவில்லை. ஏபிஐகளுக்கிடையேயான இந்த பொருத்தமின்மையால் நான் சிக்கிக்கொண்டேன்.
வெவ்வேறு அணுகுமுறைகளை பல மணிநேரம் செலவழித்த பிறகு, Android Auto ஒரு தனித்துவமான ஒருங்கிணைப்பு முறையைக் கோருகிறது என்பதை உணர்ந்தேன். அணியக்கூடிய செயல்பாட்டின் மீது போர்டிங் செய்வது சாத்தியமில்லை; அதற்கு தானியங்கு-குறிப்பிட்ட APIகள் மற்றும் இணைப்புகளைப் புரிந்து கொள்ள வேண்டும். இது எனது மையமாக மாறியது: மொபைல் மற்றும் ஆட்டோ இயங்குதளங்களை இணைக்க படிப்படியான தீர்வைக் கண்டறிதல். 🚗
இந்த கட்டுரையில், இந்த ஒருங்கிணைப்பு சவால்களை எவ்வாறு சமாளிப்பது என்பது குறித்த நடைமுறை நுண்ணறிவு மற்றும் விரிவான வழிகாட்டியைப் பகிர்ந்து கொள்கிறேன். தெளிவான படிகள் மற்றும் தொடர்புடைய எடுத்துக்காட்டுகளுடன், உங்கள் மொபைல் பயன்பாட்டை Android Auto உடன் திறம்பட இணைக்க நீங்கள் தயாராக இருப்பீர்கள். உள்ளே நுழைவோம்!
| கட்டளை | பயன்பாட்டின் உதாரணம் |
|---|---|
| CarAppService | கார் பயன்பாட்டிற்கான நுழைவுப் புள்ளியாகச் செயல்படும் Android Auto பயன்பாட்டில் சேவையை வரையறுக்கப் பயன்படுகிறது. எடுத்துக்காட்டாக, வகுப்பு MyCarAppService : CarAppService() சேவையை துவக்குகிறது. |
| onCreateSession() | கார் பயன்பாட்டிற்கான புதிய அமர்வை உருவாக்குகிறது. இது ஆண்ட்ராய்டு ஆட்டோ கட்டமைப்பால் செயல்படுத்தப்பட்ட வாழ்க்கைச் சுழற்சி முறையாகும். எடுத்துக்காட்டு: கிரியேட்செஷன்(): அமர்வில் வேடிக்கையை மேலெழுதவும். |
| Screen | கார் பயன்பாட்டின் காட்சி கூறுகளை வரையறுக்கிறது. உதாரணமாக, வகுப்பு MyCarScreen(ctx: CarContext) : Screen(ctx) ஒரு புதிய திரையை உருவாக்குகிறது. |
| Row.Builder | கார் UI டெம்ப்ளேட்டில் உரை அல்லது தரவைக் காண்பிப்பது போன்ற வரிசையை உருவாக்கப் பயன்படுகிறது. எடுத்துக்காட்டு: Row.Builder().setTitle("உள்நுழைந்த பயனர் ஐடி"). |
| BroadcastReceiver | Android Auto இல் ஒளிபரப்புகளைக் கேட்பதை இயக்குகிறது. எடுத்துக்காட்டாக, கிளாஸ் ஆட்டோரிசீவர் : பிராட்காஸ்ட் ரிசீவர்() ஒரு ரிசீவரை உருவாக்குகிறது. |
| Intent.putExtra() | ஒரு நோக்கத்துடன் கூடுதல் தரவை இணைக்கிறது. எடுத்துக்காட்டு: intent.putExtra("USER_ID", "12345") ஆண்ட்ராய்டு ஆட்டோவிற்கு பயனர் ஐடியை அனுப்புகிறது. |
| Firebase.database | தரவை ஒத்திசைக்க Firebase Realtime Databaseக்கான குறிப்பை உருவாக்குகிறது. எடுத்துக்காட்டு: val தரவுத்தளம் = Firebase.database. |
| addValueEventListener() | Firebase இல் தரவு மாற்றங்களைக் கண்காணிக்க கேட்பவரைப் பதிவுசெய்கிறது. எடுத்துக்காட்டு: userRef.addValueEventListener(பொருள் : ValueEventListener {...}). |
| DataSnapshot.getValue() | தரவுத்தள முனையின் தற்போதைய மதிப்பைப் பெறுகிறது. எடுத்துக்காட்டு: snapshot.getValue(ஸ்ட்ரிங்::class.java) ஒரு பயனர் ஐடியை சரமாக மீட்டெடுக்கிறது. |
| setValue() | ஃபயர்பேஸ் தரவுத்தள முனையில் தரவை எழுதுகிறது. எடுத்துக்காட்டு: userRef.setValue("12345") உள்நுழைந்த பயனர் ஐடியைப் புதுப்பிக்கிறது. |
ஆண்ட்ராய்டு ஆட்டோ ஒருங்கிணைப்பு பற்றிய படிப்படியான நுண்ணறிவு
முதல் ஸ்கிரிப்ட், உடன் கட்டப்பட்டது , Android Auto உடன் மொபைல் பயன்பாட்டை இணைப்பதற்கான அடித்தளத்தை வழங்குகிறது. இது திட்டத்தின் build.gradle கோப்பில் சார்புகளைச் சேர்ப்பதன் மூலம் தொடங்குகிறது, இது தானியங்கு-குறிப்பிட்ட கூறுகளுக்கான அணுகலை உறுதி செய்கிறது. இந்த செயல்முறையின் முக்கிய பகுதி ஒரு தனிப்பயனாக்கத்தை உருவாக்குகிறது , இது காருக்கும் பயன்பாட்டிற்கும் இடையிலான அனைத்து தொடர்புகளுக்கும் நுழைவுப் புள்ளியாக செயல்படுகிறது. இந்த சேவை அமர்வுகளை வரையறுக்கிறது முறை, நீங்கள் தரவைக் காண்பிக்க திரைகளைத் தொடங்கலாம். எடுத்துக்காட்டாக, மொபைல் பயன்பாட்டிலிருந்து பெறப்பட்ட உள்நுழைந்த பயனர் ஐடியைக் காட்ட ஒரு திரையை வடிவமைத்துள்ளோம். வாகனம் ஓட்டுவது மற்றும் தொடர்புடைய தரவை உங்கள் விரல் நுனியில் வைத்திருப்பதை கற்பனை செய்து பாருங்கள் - இது தடையற்றது மற்றும் பாதுகாப்பானது. 🚗
அடுத்து, மொபைல் மற்றும் ஆட்டோ ஆப்ஸுக்கு இடையே உள்ள இடைவெளியைக் குறைக்க, உள்நோக்கம் சார்ந்த தகவல்தொடர்புகளை ஆராய்ந்தோம். இந்த முறை ஒரு பயன்படுத்துகிறது ஒரு நோக்கம் மூலம் அனுப்பப்படும் பயனர் தரவைக் கேட்க. பயனர் ஐடி போன்ற தரவை ஒரு நோக்கத்துடன் பேக்கேஜிங் செய்வதன் மூலம் , மொபைல் பயன்பாடு இந்த தகவலை சிரமமின்றி அனுப்ப முடியும். இதற்கிடையில், ஆட்டோ ஆப்ஸ் இந்த சிக்னல்களை கேட்டு உள்வரும் தரவை செயலாக்குகிறது. நிகழ்நேரத்தில் இருப்பிடத் தரவு அல்லது தானியங்கி இடைமுகத்திற்கு விழிப்பூட்டல்களை அனுப்புதல் போன்ற மாறும் புதுப்பிப்புகள் தேவைப்படும் பயன்பாடுகளுக்கு இந்த அணுகுமுறை பயனுள்ளதாக இருக்கும். வெவ்வேறு சாதனங்களுடன் திறம்பட பேசும் திறனை உங்கள் பயன்பாட்டிற்கு வழங்குவது போல் உணர்கிறேன்!
மேலும் வலுவான தீர்வுகளுக்கு, நாங்கள் கிளவுட் ஒருங்கிணைப்புக்கு திரும்பினோம் . இந்த ஸ்கிரிப்ட் ஒரு பகிரப்பட்ட பின்தளத்தை அமைக்கிறது, அங்கு மொபைல் பயன்பாடு பயனர் தரவை Firebase தரவுத்தளத்தில் எழுதுகிறது, மேலும் தானியங்கு பயன்பாடு அதை மீட்டெடுக்கிறது. பயன்படுத்துவதன் மூலம் முறை, தானியங்கு பயன்பாடு தரவுத்தளத்தில் மாற்றங்களைக் கேட்கலாம் மற்றும் அதன் இடைமுகத்தை தானாகவே புதுப்பிக்கலாம். இந்த கிளவுட் அடிப்படையிலான அணுகுமுறை அளவிடுதல் மற்றும் நம்பகத்தன்மையை உறுதி செய்கிறது. எடுத்துக்காட்டாக, மொபைல் பயன்பாட்டில் பயனர் ஐடி மாறினால், ஆட்டோ ஆப்ஸ் உடனடியாகப் புதுப்பிக்கப்படும். சிரமமின்றி தரவு ஒத்திசைவுக்காக இரண்டு அமைப்புகளையும் இணைக்கும் மெய்நிகர் பாலம் இருப்பது போன்றது. 🌐
இறுதியாக, ஒவ்வொரு தீர்வும் மட்டுப்படுத்தலை மனதில் கொண்டு வடிவமைக்கப்பட்டது, இது பல்வேறு பயன்பாட்டு நிகழ்வுகளுக்கு ஏற்ப எளிதாக்குகிறது. CarAppService அமைப்பு தன்னியக்க பிரத்தியேக வடிவமைப்புகளுக்கு ஏற்றது, அதே சமயம் பிராட்காஸ்ட் ரிசீவர் இலகுரக, நேரடி தகவல்தொடர்புக்கு ஏற்றது. பல சாதனங்கள் அல்லது ரிமோட் கண்ட்ரோலில் ஒத்திசைவு தேவைப்படும் பயன்பாடுகளுக்கு Firebase தனித்து நிற்கிறது. இந்த முறைகள் மூலம், டெவலப்பர்கள் தன்னியக்க ஒருங்கிணைப்பில் உள்ள சவால்களை நம்பிக்கையுடன் சமாளிக்க முடியும். உள்நுழைந்த ஐடிகளைப் பெறுவது அல்லது மிகவும் சிக்கலான தொடர்புகளை உருவாக்குவது எதுவாக இருந்தாலும், இந்த கருவிகள் ஆண்ட்ராய்டு ஆட்டோ போன்ற தனித்துவமான சூழல்களில் கூட தடையற்ற செயல்பாட்டை உறுதி செய்கின்றன.
தீர்வு 1: தரவு பரிமாற்றத்திற்கு ஆண்ட்ராய்டு ஆட்டோ ஆப் லைப்ரரியைப் பயன்படுத்துதல்
மொபைல் பயன்பாட்டிற்கும் ஆண்ட்ராய்டு ஆட்டோவிற்கும் இடையே தடையின்றி ஒருங்கிணைப்பதற்காக, ஆண்ட்ராய்டு ஆட்டோ ஆப் லைப்ரரியுடன் கோட்லினை இந்த தீர்வு உதவுகிறது.
// Step 1: Add Android Auto dependencies in build.gradledependencies {implementation 'androidx.car.app:app:1.2.0'}// Step 2: Create a Car App Serviceclass MyCarAppService : CarAppService() {override fun onCreateSession(): Session {return MyCarSession()}}// Step 3: Define the session logicclass MyCarSession : Session() {override fun onCreateScreen(intent: Intent): Screen {return MyCarScreen(carContext)}}// Step 4: Define the screen and display logged-in user IDclass MyCarScreen(ctx: CarContext) : Screen(ctx) {override fun onGetTemplate(): Template {val userId = fetchUserIdFromMobileApp()val textTemplate = Row.Builder().setTitle("Logged-In User ID").addText(userId).build()return Template.Builder().setSingleList(textTemplate).build()}}// Step 5: Create a function to fetch user ID from the mobile appfun fetchUserIdFromMobileApp(): String {// Logic to retrieve data from shared preferences or backend APIreturn "12345" // Example user ID}
தீர்வு 2: ஒளிபரப்புகளைப் பயன்படுத்தி தகவல்தொடர்புகளை நிறுவுதல்
மொபைல் ஆப்ஸ் மற்றும் ஆண்ட்ராய்டு ஆட்டோ ஆகியவற்றுக்கு இடையேயான தரவு பரிமாற்றத்திற்காக இந்த முறை கோட்லினை இன்டென்ட் அடிப்படையிலான தகவல்தொடர்புகளைப் பயன்படுத்துகிறது.
// Step 1: Define a BroadcastReceiver in the Auto Appclass AutoReceiver : BroadcastReceiver() {override fun onReceive(context: Context, intent: Intent) {if (intent.action == "com.example.MOBILE_DATA") {val userId = intent.getStringExtra("USER_ID")Log.d("AutoReceiver", "Received User ID: $userId")}}}// Step 2: Register the receiver in AndroidManifest.xml<receiver android:name=".AutoReceiver"><intent-filter><action android:name="com.example.MOBILE_DATA" /></intent-filter></receiver>// Step 3: Send Broadcast from Mobile Appfun sendUserIdToAuto(context: Context) {val intent = Intent("com.example.MOBILE_DATA")intent.putExtra("USER_ID", "12345")context.sendBroadcast(intent)}
தீர்வு 3: பகிரப்பட்ட தரவுத்தளத்தைப் பயன்படுத்துதல் (எ.கா. ஃபயர்பேஸ்)
இந்தத் தீர்வு, மொபைல் ஆப்ஸ் மற்றும் ஆண்ட்ராய்டு ஆட்டோ இடையே தரவை ஒத்திசைக்க Firebase Realtime Databaseஐப் பயன்படுத்துகிறது.
// Step 1: Add Firebase dependencies in build.gradledependencies {implementation 'com.google.firebase:firebase-database-ktx:20.1.0'}// Step 2: Configure Firebase Database referenceval database = Firebase.databaseval userRef = database.getReference("users/loggedInUserId")// Step 3: Update user ID from Mobile Appfun updateUserId(userId: String) {userRef.setValue(userId)}// Step 4: Fetch user ID from Auto Appfun fetchUserIdInAuto() {userRef.addValueEventListener(object : ValueEventListener {override fun onDataChange(snapshot: DataSnapshot) {val userId = snapshot.getValue(String::class.java)Log.d("Firebase", "Fetched User ID: $userId")}override fun onCancelled(error: DatabaseError) {Log.e("Firebase", "Error fetching user ID: ${error.message}")}})}
மொபைல் ஆப்ஸ் மற்றும் ஆண்ட்ராய்டு ஆட்டோ இடையே நிகழ்நேர டேட்டா ஒத்திசைவில் தேர்ச்சி பெறுதல்
ஆண்ட்ராய்டு ஆட்டோ பயன்பாட்டை உருவாக்கும் போது, ஒரு முக்கியமான சவால் உறுதி செய்யப்படுகிறது மொபைல் பயன்பாட்டிற்கும் கார் இடைமுகத்திற்கும் இடையில். அணியக்கூடிய APIகளைப் போலன்றி, Android Auto அதன் தனித்துவமான கட்டமைப்பைப் பயன்படுத்துகிறது, இது பாதுகாப்பான ஓட்டுநர் அனுபவங்களில் கவனம் செலுத்துகிறது, இது சில கட்டளைகளின் பயன்பாட்டைக் கட்டுப்படுத்துகிறது. இந்தச் சவாலுக்கான ஒரு தீர்வானது, பயன்பாடுகளுக்கு இடையே தரவைப் பகிர்வதற்காக வடிவமைக்கப்பட்ட உள்ளமைக்கப்பட்ட ஆண்ட்ராய்டு கூறுகளான ContentProviders ஐ மேம்படுத்துவதாகும். தேவையான பாதுகாப்பு மற்றும் செயல்திறனைப் பராமரிக்கும் போது ContentProviders தடையற்ற தரவு பரிமாற்றத்தை அனுமதிக்கிறது. எடுத்துக்காட்டாக, அவர்கள் மொபைல் பயன்பாட்டிலிருந்து உள்நுழைந்த பயனர் ஐடியைப் பெறலாம் மற்றும் அதை நிகழ்நேரத்தில் Android Auto உடன் பகிரலாம்.
ஆராய்வதற்கான மற்றொரு அம்சம், நிலையான சேமிப்பிற்காக அறை தரவுத்தளங்களைப் பயன்படுத்துவதாகும், இது சாதனங்கள் முழுவதும் தரவை ஒத்திசைப்பதை எளிதாக்கும். நெட்வொர்க் இணைப்பு இல்லாவிட்டாலும், ஆட்டோ ஆப்ஸ் பயனர் தரவை அணுகுவதை உறுதி செய்யும் வகையில் அறை உள்ளூர் தற்காலிக சேமிப்பாக செயல்படும். மொபைல் பயன்பாடு உள்நுழைந்த பயனர் ஐடியைப் புதுப்பிக்கும் போது, அறை தரவுத்தளம் இந்த மாற்றங்களை ஒத்திசைக்கிறது, மேலும் ஆட்டோ ஆப் சமீபத்திய மதிப்பைப் பெறுகிறது. வழிசெலுத்தல் அமைப்புகள் அல்லது மீடியா பிளேயர்கள் போன்ற அதிக நம்பகத்தன்மை தேவைப்படும் பயன்பாடுகளுக்கு இந்த அணுகுமுறை மிகவும் பயனுள்ளதாக இருக்கும். 🚀
கடைசியாக, டெவலப்பர்கள் ஆண்ட்ராய்டு ஆட்டோவின் டெம்ப்ளேட்களைப் பயன்படுத்தி பயனர் அனுபவத்தை மேம்படுத்தலாம். உதாரணமாக, உள்நுழைந்த பயனர் செயல்பாடு அல்லது அறிவிப்புகள் போன்ற மாறும் பட்டியல்களைக் காட்ட ஒரு பட்டியல் டெம்ப்ளேட்டைப் பயன்படுத்தலாம். இந்த டெம்ப்ளேட்டுகள் இயக்கி பாதுகாப்பை உறுதி செய்வதற்காக முன்பே வடிவமைக்கப்பட்டவை, குறைந்தபட்ச தொடர்புகளை வைத்து. இந்த நுட்பங்களை இணைப்பதன் மூலம், ஆண்ட்ராய்டு ஆட்டோவின் கடுமையான வடிவமைப்பு வழிகாட்டுதல்களைப் பின்பற்றும் போது, டெவலப்பர்கள் ஒரு வலுவான ஒருங்கிணைப்பை வழங்க முடியும்.
- மொபைல் பயன்பாட்டிற்கும் ஆண்ட்ராய்டு ஆட்டோவிற்கும் இடையில் தரவை ஒத்திசைக்க சிறந்த வழி எது?
- பயன்படுத்தி மொபைல் பயன்பாடுகள் மற்றும் ஆண்ட்ராய்டு ஆட்டோ ஆகியவற்றுக்கு இடையே தரவைப் பாதுகாப்பாகப் பகிர்வதற்கான திறமையான வழியாகும். அனுமதிகள் மீதான கட்டுப்பாட்டைப் பராமரிக்கும் போது அவை தரவுக்கான கட்டமைக்கப்பட்ட அணுகலை வழங்குகின்றன.
- Android Auto உடன் அணியக்கூடிய APIகளை நான் பயன்படுத்தலாமா?
- இல்லை, Android Auto அதன் சொந்த APIகளைக் கொண்டுள்ளது. அணியக்கூடிய APIகளுக்குப் பதிலாக, நீங்கள் பயன்படுத்த வேண்டும் மற்றும் ஒருங்கிணைப்புக்கான Android Auto டெம்ப்ளேட்கள்.
- ஆண்ட்ராய்டு ஆட்டோவில் டைனமிக் டேட்டாவை எப்படி காட்டுவது?
- நீங்கள் பயன்படுத்தலாம் பயனர் ஐடி அல்லது அறிவிப்புகள் போன்ற டைனமிக் தரவை வழங்க ஒரு பட்டியல் டெம்ப்ளேட்டிற்குள்.
- இணைய இணைப்பு இல்லாவிட்டால் என்ன நடக்கும்?
- ஒரு பயன்படுத்தி நெட்வொர்க் இணைப்பு இல்லாமலேயே Android Auto தேவையான தரவை அணுக முடியும் என்பதை உள்ளூர் கேச் உறுதி செய்கிறது.
- Firebase தரவுத்தளங்கள் Android Auto உடன் இணக்கமாக உள்ளதா?
- ஆம், மொபைல் ஆப்ஸுக்கும் ஆண்ட்ராய்டு ஆட்டோவிற்கும் இடையில் டேட்டாவை ஒத்திசைக்க Firebaseஐப் பயன்படுத்தலாம். எடுத்துக்காட்டாக, மொபைல் செயலியைப் பயன்படுத்தி தரவை எழுத முடியும் , மற்றும் ஆட்டோ ஆப்ஸ் மூலம் புதுப்பிப்புகளைப் படிக்க முடியும் .
Android Auto உடன் உங்கள் மொபைல் பயன்பாட்டை ஒருங்கிணைக்க, அதன் குறிப்பிட்ட API ஐப் புரிந்துகொள்வது மற்றும் அணியக்கூடிய APIகள் போன்ற இணக்கமற்ற கருவிகளைத் தவிர்ப்பது அவசியம். Firebase மற்றும் CarAppService போன்ற கட்டமைப்புகளை மேம்படுத்துவதன் மூலம், நிகழ்நேர தரவு பரிமாற்றம் மிகவும் நெறிப்படுத்தப்பட்டதாகவும் திறமையாகவும் மாறும். இது வாகனம் ஓட்டும் போது சிறந்த பயனர் அனுபவத்தை உறுதி செய்கிறது. 🚀
பாதுகாப்பு மற்றும் செயல்பாட்டில் கவனம் செலுத்துவதன் மூலம், டெவலப்பர்கள் பொருத்தமான டெம்ப்ளேட்கள் மற்றும் பின்தள கருவிகளைப் பயன்படுத்துவதன் மூலம் வலுவான தீர்வுகளை உருவாக்க முடியும். இந்த முறைகள் ஆண்ட்ராய்டு ஆட்டோவின் சவால்களை நிவர்த்தி செய்வது மட்டுமல்லாமல், எதிர்கால ஆப்ஸ் மேம்பாடுகள் மற்றும் ஒருங்கிணைப்புகளுக்கு அளவிடக்கூடிய, நம்பகமான பாதைகளையும் வழங்குகின்றன.
- அதிகாரப்பூர்வ ஆண்ட்ராய்டு டெவலப்பர் ஆவணத்திலிருந்து ஆண்ட்ராய்டு ஆட்டோ ஏபிஐகள் மற்றும் மேம்பாட்டு நடைமுறைகள் பற்றிய விரிவான வழிகாட்டுதல்கள்: ஆண்ட்ராய்டு ஆட்டோ பயிற்சி .
- நிகழ்நேர தரவுத்தள தீர்வுகளுக்கான விரிவான ஃபயர்பேஸ் அமைப்பு மற்றும் ஒருங்கிணைப்பு முறைகள்: ஃபயர்பேஸ் நிகழ்நேர தரவுத்தளம் .
- மேம்பட்ட APIகள் மற்றும் கட்டிடக்கலை உட்பட ஆண்ட்ராய்டு மேம்பாட்டிற்கு Kotlin ஐப் பயன்படுத்துவது பற்றிய தகவல்: கோட்லின் ஆண்ட்ராய்டு கண்ணோட்டம் .
- உள்ளடக்க வழங்குநர்களை உருவாக்குவதற்கும் பயன்பாட்டுத் தொடர்புகளை நிர்வகிப்பதற்கும் சிறந்த நடைமுறைகள் பற்றிய நுண்ணறிவு: உள்ளடக்க வழங்குநர்கள் வழிகாட்டி .