{"id":"68177215-b85e-4a04-bfea-bb84a9cbd134","shortId":"QtG7yh","kind":"skill","title":"cometchat-android-v6-core","tagline":"CometChat Android UIKit v6 core setup — Gradle dependencies, SDK initialization, login/logout, and message sending","description":"> **Companion skills:** cometchat (dispatcher), cometchat-android-v6-builder-settings (detailed UIKitSettings config), cometchat-android-v6-events (event system)\n\n## Purpose\n\nSet up CometChat Android UIKit v6 in a project: add Gradle dependencies, initialize the SDK, authenticate users, and send messages. This skill covers the shared `chatuikit-core` module that both Kotlin Views and Jetpack Compose stacks depend on.\n\n## Use this skill when\n\n- Adding CometChat to a new Android project\n- Setting up Gradle dependencies for CometChat UIKit v6\n- Initializing the CometChat SDK\n- Implementing login, logout, or user creation\n- Sending text, media, or custom messages via `CometChatUIKit`\n\n## Do not use this skill when\n\n- Configuring `UIKitSettings` in detail (use `cometchat-android-v6-builder-settings`)\n- Working with UI components (use `cometchat-android-v6-kotlin-components` or `cometchat-android-v6-compose-components`)\n- Handling events (use `cometchat-android-v6-events`)\n\n## 1. Gradle Setup\n\n### 1.1 Add the CometChat Maven Repository\n\nIn `settings.gradle` or `settings.gradle.kts`:\n\n```kotlin\ndependencyResolutionManagement {\n    repositories {\n        google()\n        mavenCentral()\n        maven { url = uri(\"https://dl.cloudsmith.io/public/cometchat/cometchat/maven/\") }\n    }\n}\n```\n\n### 1.2 Add Dependencies\n\nChoose the stack you need in your module's `build.gradle.kts`:\n\n```kotlin\n// Jetpack Compose stack (includes core transitively)\nimplementation(\"com.cometchat:chatuikit-compose-android:6.0.0-beta2\")\n\n// Kotlin Views stack (includes core transitively)\nimplementation(\"com.cometchat:chatuikit-kotlin-android:6.0.0-beta2\")\n\n// Core only (no UI — for shared modules or custom UI)\nimplementation(\"com.cometchat:chatuikit-core-android:6.0.0-beta2\")\n```\n\n### 1.3 SDK Requirements\n\n```kotlin\nandroid {\n    compileSdk = 36\n    defaultConfig {\n        minSdk = 28\n    }\n    compileOptions {\n        sourceCompatibility = JavaVersion.VERSION_11\n        targetCompatibility = JavaVersion.VERSION_11\n    }\n    kotlinOptions {\n        jvmTarget = \"11\"\n    }\n}\n```\n\n### 1.3a AndroidX + Jetifier (REQUIRED — non-negotiable)\n\nThe CometChat Chat SDK transitively depends on the legacy `com.android.support:support-compat` library. Modern Android Studio projects (Arctic Fox+) default to `androidx.core` instead. Without Jetifier, Gradle sees the same classes (`android.support.v4.os.ResultReceiver`, etc.) declared in both libraries and fails the build with:\n\n```\nDuplicate class android.support.v4.os.ResultReceiver$1 found in modules\n  core-1.16.0.aar -> core-1.16.0-runtime (androidx.core:core:1.16.0)\n  and support-compat-26.1.0.aar -> support-compat-26.1.0-runtime\n  (com.android.support:support-compat:26.1.0)\n```\n\n**Add these two lines to `gradle.properties` at the project root** before any UI Kit code is wired in:\n\n```properties\nandroid.useAndroidX=true\nandroid.enableJetifier=true\n```\n\nBoth are **mandatory**. Jetifier rewrites the legacy `android.support.*` references in the CometChat SDK's transitive deps to their `androidx.*` equivalents at build time, so the duplicate-class error doesn't happen.\n\nA freshly-created Android Studio project usually has `android.useAndroidX=true` already (Arctic Fox+) but **Jetifier is OFF by default** since it's deprecated in newer SDK landscapes. Both V5 and V6 CometChat SDKs still need it. If `gradle.properties` doesn't have either line, append both. If it has `useAndroidX=true` but no Jetifier line, add the Jetifier line. Idempotent.\n\n### 1.3b Annotation library exclude (REQUIRED — non-negotiable)\n\nThe CometChat Chat SDK transitively depends on `org.jetbrains:annotations-java5:17.0.0`, which collides with Kotlin stdlib's `org.jetbrains:annotations:23.0.0` and fails the build with:\n\n```\nDuplicate class org.jetbrains.annotations.ApiStatus$* found in modules\n  annotations-23.0.0 (org.jetbrains:annotations:23.0.0)\n  and annotations-java5-17.0.0 (org.jetbrains:annotations-java5:17.0.0)\n```\n\n**Add this block to `app/build.gradle.kts`** at the top level (sibling of the `android { }` and `dependencies { }` blocks), before any UI Kit code is wired in:\n\n```kotlin\nconfigurations.all {\n    // CometChat SDK transitively pulls org.jetbrains:annotations-java5:17.0.0,\n    // which collides with Kotlin stdlib's org.jetbrains:annotations:23.0.0.\n    exclude(group = \"org.jetbrains\", module = \"annotations-java5\")\n}\n```\n\nThis is mandatory for both V5 and V6, both Compose and Kotlin Views. Idempotent — if the block already exists, leave it.\n\n### 1.4 Credentials → `local.properties` → `BuildConfig`\n\nV6 has no runtime `.env` lookup; credentials are injected at compile time as `BuildConfig` fields. Do NOT hardcode App ID / Region / Auth Key in source files.\n\n**Step 1.** Put credentials in `local.properties` (project root, gitignored by default in every Android Studio template):\n\n```properties\ncometchat.appId=<APP_ID>\ncometchat.region=<REGION>\ncometchat.authKey=<AUTH_KEY>\n```\n\n**Step 2.** In `app/build.gradle.kts`, read those properties and surface them as `BuildConfig` fields:\n\n```kotlin\nimport java.util.Properties\n\nval localProps = Properties().apply {\n    val f = rootProject.file(\"local.properties\")\n    if (f.exists()) f.inputStream().use { load(it) }\n}\n\nandroid {\n    defaultConfig {\n        buildConfigField(\"String\", \"COMETCHAT_APP_ID\",   \"\\\"${localProps.getProperty(\"cometchat.appId\", \"\")}\\\"\")\n        buildConfigField(\"String\", \"COMETCHAT_REGION\",   \"\\\"${localProps.getProperty(\"cometchat.region\", \"\")}\\\"\")\n        buildConfigField(\"String\", \"COMETCHAT_AUTH_KEY\", \"\\\"${localProps.getProperty(\"cometchat.authKey\", \"\")}\\\"\")\n    }\n    buildFeatures { buildConfig = true }\n}\n```\n\n**Step 3.** In code, read `BuildConfig.COMETCHAT_APP_ID` etc.:\n\n```kotlin\nval settings = UIKitSettings.UIKitSettingsBuilder()\n    .setAppId(BuildConfig.COMETCHAT_APP_ID)\n    .setRegion(BuildConfig.COMETCHAT_REGION)\n    .setAuthKey(BuildConfig.COMETCHAT_AUTH_KEY)   // dev only — drop for production\n    .build()\n```\n\nIf `npx @cometchat/skills-cli provision setup --framework android` ran first, it wrote a `.env` as a credentials handoff. Migrate those values into `local.properties` (above) and delete the `.env` — Android won't read it at runtime.\n\n## 2. SDK Initialization\n\nInitialize once in your `Application` class or splash screen — never in every Activity.\n\n```kotlin\nimport com.cometchat.uikit.core.CometChatUIKit\nimport com.cometchat.uikit.core.UIKitSettings\nimport com.cometchat.chat.core.CometChat\nimport com.cometchat.chat.exceptions.CometChatException\n\nval settings = UIKitSettings.UIKitSettingsBuilder()\n    .setAppId(\"YOUR_APP_ID\")\n    .setRegion(\"us\") // \"us\" or \"eu\"\n    .setAuthKey(\"YOUR_AUTH_KEY\") // dev only — use token auth in production\n    .build()\n\nCometChatUIKit.init(context, settings, object : CometChat.CallbackListener<String>() {\n    override fun onSuccess(result: String) {\n        // SDK ready — proceed to login\n    }\n    override fun onError(e: CometChatException) {\n        // Handle initialization error\n    }\n})\n```\n\nFor calling features, enable them in settings:\n\n```kotlin\nval settings = UIKitSettings.UIKitSettingsBuilder()\n    .setAppId(\"YOUR_APP_ID\")\n    .setRegion(\"us\")\n    .setAuthKey(\"YOUR_AUTH_KEY\")\n    .setEnableCalling(true) // Auto-initializes CometChatCalls SDK\n    .build()\n```\n\nSee `cometchat-android-v6-builder-settings` for all `UIKitSettingsBuilder` options.\n\n## 3. Authentication\n\n### 3.1 Login with UID (Development Only)\n\n```kotlin\nCometChatUIKit.login(\"user_uid\", object : CometChat.CallbackListener<User>() {\n    override fun onSuccess(user: User) {\n        // User logged in — show chat UI\n    }\n    override fun onError(e: CometChatException) {\n        // Handle login error\n    }\n})\n```\n\n### 3.2 Login with Auth Token (Production)\n\n```kotlin\nCometChatUIKit.loginWithAuthToken(\"auth_token_from_server\",\n    object : CometChat.CallbackListener<User>() {\n        override fun onSuccess(user: User) {\n            // User logged in\n        }\n        override fun onError(e: CometChatException) {\n            // Handle error\n        }\n    }\n)\n```\n\n### 3.3 Logout\n\n```kotlin\nCometChatUIKit.logout(object : CometChat.CallbackListener<String>() {\n    override fun onSuccess(message: String) {\n        // User logged out — navigate to login screen\n    }\n    override fun onError(e: CometChatException) {\n        // Handle error\n    }\n})\n```\n\n### 3.4 Create User\n\n```kotlin\nval user = User().apply {\n    uid = \"new_user_uid\"\n    name = \"New User\"\n}\n\nCometChatUIKit.createUser(user, object : CometChat.CallbackListener<User>() {\n    override fun onSuccess(createdUser: User) {\n        // User created — now login\n    }\n    override fun onError(e: CometChatException) {\n        // Handle error\n    }\n})\n```\n\n## 4. Utility Methods\n\n```kotlin\n// Check if SDK is initialized\nval isReady = CometChatUIKit.isSDKInitialized()\n\n// Check if Calls SDK is initialized (only if enableCalling = true)\nval callsReady = CometChatUIKit.isCallsSDKInitialized()\n\n// Get currently logged-in user (null if not logged in)\nval currentUser: User? = CometChatUIKit.getLoggedInUser()\n\n// Get current auth settings\nval authSettings: UIKitSettings? = CometChatUIKit.getAuthSettings()\n\n// Get conversation update settings\nval convSettings = CometChatUIKit.getConversationUpdateSettings()\n```\n\n## 5. Sending Messages\n\n`CometChatUIKit` provides convenience methods that automatically emit events via `CometChatEvents`:\n\n### 5.1 Text Message\n\n```kotlin\nval textMessage = TextMessage(\"receiver_uid\", \"Hello!\", CometChatConstants.RECEIVER_TYPE_USER)\n\nCometChatUIKit.sendTextMessage(textMessage, object : CometChat.CallbackListener<TextMessage>() {\n    override fun onSuccess(message: TextMessage) {\n        // Message sent\n    }\n    override fun onError(e: CometChatException) {\n        // Handle error\n    }\n})\n```\n\n### 5.2 Media Message\n\n```kotlin\nval mediaMessage = MediaMessage(\n    \"receiver_uid\",\n    file, // java.io.File\n    CometChatConstants.MESSAGE_TYPE_IMAGE,\n    CometChatConstants.RECEIVER_TYPE_USER\n)\n\nCometChatUIKit.sendMediaMessage(mediaMessage, object : CometChat.CallbackListener<MediaMessage>() {\n    override fun onSuccess(message: MediaMessage) { }\n    override fun onError(e: CometChatException) { }\n})\n```\n\n### 5.3 Custom Message\n\n```kotlin\nval customMessage = CustomMessage(\n    \"receiver_uid\",\n    CometChatConstants.RECEIVER_TYPE_USER,\n    \"custom_type\",\n    JSONObject().put(\"key\", \"value\")\n)\n\nCometChatUIKit.sendCustomMessage(customMessage, object : CometChat.CallbackListener<CustomMessage>() {\n    override fun onSuccess(message: CustomMessage) { }\n    override fun onError(e: CometChatException) { }\n})\n```\n\nAll send methods automatically:\n1. Set `sender`, `muid`, and `sentAt` if not already set\n2. Emit `CometChatMessageEvent.MessageSent` with `IN_PROGRESS` status\n3. On success: emit with `SUCCESS` status\n4. On error: embed error in metadata and emit with `ERROR` status\n\n## Hard rules\n\n- NEVER call `CometChatUIKit.init()` in every Activity — call it once in `Application.onCreate()` or a splash screen\n- NEVER ship `authKey` in production builds — use `loginWithAuthToken()` with server-generated tokens\n- ALWAYS check `isSDKInitialized()` before making SDK calls if initialization might not have completed\n- `minSdk` must be 28 or higher — v6 does not support lower API levels\n- `compileSdk` should be 36 for full compatibility\n- Both UI stacks depend on `chatuikit-core` transitively — do NOT add core as a separate dependency when using a UI stack\n- `gradle.properties` MUST contain `android.useAndroidX=true` AND `android.enableJetifier=true` — see § 1.3a. Without Jetifier, the build fails with \"Duplicate class android.support.v4.os.ResultReceiver$1\" because the CometChat SDK's transitive `com.android.support:support-compat` collides with `androidx.core` in any modern Android Studio project","tags":["cometchat","android","core","skills","agent-skills","ai-agent","chat","claude-code","cursor","messaging","nextjs","react"],"capabilities":["skill","source-cometchat","skill-cometchat-android-v6-core","topic-agent-skills","topic-ai-agent","topic-chat","topic-claude-code","topic-cometchat","topic-cursor","topic-messaging","topic-nextjs","topic-react","topic-react-native","topic-ui-kit"],"categories":["cometchat-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/cometchat/cometchat-skills/cometchat-android-v6-core","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add cometchat/cometchat-skills","source_repo":"https://github.com/cometchat/cometchat-skills","install_from":"skills.sh"}},"qualityScore":"0.463","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 27 github stars · SKILL.md body (11,816 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:04:46.357Z","embedding":null,"createdAt":"2026-05-07T13:05:05.528Z","updatedAt":"2026-05-18T19:04:46.357Z","lastSeenAt":"2026-05-18T19:04:46.357Z","tsv":"'/public/cometchat/cometchat/maven/':183 '1':160,317,614,1152,1293 '1.1':163 '1.16.0':323,327 '1.2':184 '1.3':244,264,455,1282 '1.4':583 '11':257,260,263 '17.0.0':475,505,510,545 '2':634,752,1162 '23.0.0':484,497,500,554 '26.1.0':333,339 '28':253,1234 '3':689,864,1169 '3.1':866 '3.2':897 '3.3':926 '3.4':951 '36':250,1247 '4':986,1176 '5':1041 '5.1':1054 '5.2':1085 '5.3':1116 '6.0.0':210,224,242 'activ':767,1195 'ad':84 'add':50,164,185,340,450,511,1262 'alreadi':406,579,1160 'alway':1218 'android':3,7,26,35,44,89,130,141,148,157,209,223,241,248,287,399,523,626,663,724,745,856,1310 'android.enablejetifier':361,1279 'android.support':370 'android.support.v4.os.resultreceiver':303,316,1292 'android.useandroidx':359,404,1276 'androidx':266,381 'androidx.core':294,325,1306 'annot':457,473,483,496,499,503,508,543,553,560 'annotations-java5':472,502,507,542,559 'api':1242 'app':605,668,694,703,782,837 'app/build.gradle.kts':515,636 'append':439 'appli':652,958 'applic':759 'application.oncreate':1200 'arctic':290,407 'auth':608,681,710,791,797,843,900,905,1028 'authent':56,865 'authkey':1207 'authset':1031 'auto':848 'auto-initi':847 'automat':1049,1151 'b':456 'beta2':211,225,243 'block':513,526,578 'build':312,384,488,717,800,852,1210,1287 'build.gradle.kts':196 'buildconfig':586,600,644,686 'buildconfig.cometchat':693,702,706,709 'buildconfigfield':665,672,678 'builder':28,132,858 'buildfeatur':685 'call':825,1000,1191,1196,1224 'callsreadi':1009 'chat':274,466,887 'chatuikit':67,207,221,239,1257 'chatuikit-compose-android':206 'chatuikit-cor':66,1256 'chatuikit-core-android':238 'chatuikit-kotlin-android':220 'check':990,998,1219 'choos':187 'class':302,315,390,491,760,1291 'code':354,531,691 'collid':477,547,1304 'com.android.support':281,335,1300 'com.cometchat':205,219,237 'com.cometchat.chat.core.cometchat':774 'com.cometchat.chat.exceptions.cometchatexception':776 'com.cometchat.uikit.core.cometchatuikit':770 'com.cometchat.uikit.core.uikitsettings':772 'cometchat':2,6,22,25,34,43,85,96,101,129,140,147,156,166,273,374,427,465,537,667,674,680,855,1296 'cometchat-android-v6-builder-settings':24,128,854 'cometchat-android-v6-compose-components':146 'cometchat-android-v6-core':1 'cometchat-android-v6-events':33,155 'cometchat-android-v6-kotlin-components':139 'cometchat.appid':630,671 'cometchat.authkey':632,684 'cometchat.callbacklistener':805,877,910,931,969,1070,1105,1137 'cometchat.region':631,677 'cometchat/skills-cli':720 'cometchatcal':850 'cometchatconstants.message':1096 'cometchatconstants.receiver':1064,1099,1125 'cometchatev':1053 'cometchatexcept':820,893,923,948,983,1082,1115,1147 'cometchatmessageevent.messagesent':1164 'cometchatuikit':116,1044 'cometchatuikit.createuser':966 'cometchatuikit.getauthsettings':1033 'cometchatuikit.getconversationupdatesettings':1040 'cometchatuikit.getloggedinuser':1025 'cometchatuikit.init':801,1192 'cometchatuikit.iscallssdkinitialized':1010 'cometchatuikit.issdkinitialized':997 'cometchatuikit.login':873 'cometchatuikit.loginwithauthtoken':904 'cometchatuikit.logout':929 'cometchatuikit.sendcustommessage':1134 'cometchatuikit.sendmediamessage':1102 'cometchatuikit.sendtextmessage':1067 'companion':20 'compat':284,332,338,1250,1303 'compil':597 'compileopt':254 'compilesdk':249,1244 'complet':1230 'compon':137,144,151 'compos':76,150,199,208,571 'config':32 'configur':123 'configurations.all':536 'contain':1275 'context':802 'conveni':1046 'convers':1035 'convset':1039 'core':5,10,68,202,216,226,240,322,326,1258,1263 'core-1.16.0.aar':321 'cover':63 'creat':398,952,976 'createdus':973 'creation':108 'credenti':584,593,616,733 'current':1012,1027 'currentus':1023 'custom':113,234,1117,1128 'custommessag':1121,1122,1135,1142 'declar':305 'default':292,414,623 'defaultconfig':251,664 'delet':742 'dep':378 'depend':13,52,78,94,186,277,469,525,1254,1267 'dependencyresolutionmanag':174 'deprec':418 'detail':30,126 'dev':712,793 'develop':870 'dispatch':23 'dl.cloudsmith.io':182 'dl.cloudsmith.io/public/cometchat/cometchat/maven/':181 'doesn':392,434 'drop':714 'duplic':314,389,490,1290 'duplicate-class':388 'e':819,892,922,947,982,1081,1114,1146 'either':437 'emb':1179 'emit':1050,1163,1172,1184 'enabl':827 'enablecal':1006 'env':591,730,744 'equival':382 'error':391,823,896,925,950,985,1084,1178,1180,1186 'etc':304,696 'eu':788 'event':37,38,153,159,1051 'everi':625,766,1194 'exclud':459,555 'exist':580 'f':654 'f.exists':658 'f.inputstream':659 'fail':310,486,1288 'featur':826 'field':601,645 'file':612,1094 'first':726 'found':318,493 'fox':291,408 'framework':723 'fresh':397 'freshly-cr':396 'full':1249 'fun':807,817,879,890,912,920,933,945,971,980,1072,1079,1107,1112,1139,1144 'generat':1216 'get':1011,1026,1034 'gitignor':621 'googl':176 'gradl':12,51,93,161,298 'gradle.properties':345,433,1273 'group':556 'handl':152,821,894,924,949,984,1083 'handoff':734 'happen':394 'hard':1188 'hardcod':604 'hello':1063 'higher':1236 'id':606,669,695,704,783,838 'idempot':454,575 'imag':1098 'implement':103,204,218,236 'import':647,769,771,773,775 'includ':201,215 'initi':15,53,99,754,755,822,849,994,1003,1226 'inject':595 'instead':295 'isreadi':996 'issdkiniti':1220 'java.io.file':1095 'java.util.properties':648 'java5':474,504,509,544,561 'javaversion.version':256,259 'jetifi':267,297,366,410,448,452,1285 'jetpack':75,198 'jsonobject':1130 'jvmtarget':262 'key':609,682,711,792,844,1132 'kit':353,530 'kotlin':72,143,173,197,212,222,247,479,535,549,573,646,697,768,831,872,903,928,954,989,1057,1088,1119 'kotlinopt':261 'landscap':422 'leav':581 'legaci':280,369 'level':519,1243 'librari':285,308,458 'line':343,438,449,453 'load':661 'local.properties':585,618,656,739 'localprop':650 'localprops.getproperty':670,676,683 'log':884,917,938,1014,1020 'logged-in':1013 'login':104,815,867,895,898,942,978 'login/logout':16 'loginwithauthtoken':1212 'logout':105,927 'lookup':592 'lower':1241 'make':1222 'mandatori':365,564 'maven':167,178 'mavencentr':177 'media':111,1086 'mediamessag':1090,1091,1103,1110 'messag':18,60,114,935,1043,1056,1074,1076,1087,1109,1118,1141 'metadata':1182 'method':988,1047,1150 'might':1227 'migrat':735 'minsdk':252,1231 'modern':286,1309 'modul':69,194,232,320,495,558 'muid':1155 'must':1232,1274 'name':963 'navig':940 'need':191,430 'negoti':271,463 'never':764,1190,1205 'new':88,960,964 'newer':420 'non':270,462 'non-negoti':269,461 'npx':719 'null':1017 'object':804,876,909,930,968,1069,1104,1136 'onerror':818,891,921,946,981,1080,1113,1145 'onsuccess':808,880,913,934,972,1073,1108,1140 'option':863 'org.jetbrains':471,482,498,506,541,552,557 'org.jetbrains.annotations.apistatus':492 'overrid':806,816,878,889,911,919,932,944,970,979,1071,1078,1106,1111,1138,1143 'proceed':813 'product':716,799,902,1209 'progress':1167 'project':49,90,289,348,401,619,1312 'properti':358,629,639,651 'provid':1045 'provis':721 'pull':540 'purpos':40 'put':615,1131 'ran':725 'read':637,692,748 'readi':812 'receiv':1061,1092,1123 'refer':371 'region':607,675,707 'repositori':168,175 'requir':246,268,460 'result':809 'rewrit':367 'root':349,620 'rootproject.file':655 'rule':1189 'runtim':324,334,590,751 'screen':763,943,1204 'sdk':14,55,102,245,275,375,421,467,538,753,811,851,992,1001,1223,1297 'sdks':428 'see':299,853,1281 'send':19,59,109,1042,1149 'sender':1154 'sent':1077 'sentat':1157 'separ':1266 'server':908,1215 'server-gener':1214 'set':29,41,91,133,699,778,803,830,833,859,1029,1037,1153,1161 'setappid':701,780,835 'setauthkey':708,789,841 'setenablecal':845 'setregion':705,784,839 'settings.gradle':170 'settings.gradle.kts':172 'setup':11,162,722 'share':65,231 'ship':1206 'show':886 'sibl':520 'sinc':415 'skill':21,62,82,121 'skill-cometchat-android-v6-core' 'sourc':611 'source-cometchat' 'sourcecompat':255 'splash':762,1203 'stack':77,189,200,214,1253,1272 'status':1168,1175,1187 'stdlib':480,550 'step':613,633,688 'still':429 'string':666,673,679,810,936 'studio':288,400,627,1311 'success':1171,1174 'support':283,331,337,1240,1302 'support-compat':282,330,336,1301 'support-compat-26.1.0.aar':329 'surfac':641 'system':39 'targetcompat':258 'templat':628 'text':110,1055 'textmessag':1059,1060,1068,1075 'time':385,598 'token':796,901,906,1217 'top':518 'topic-agent-skills' 'topic-ai-agent' 'topic-chat' 'topic-claude-code' 'topic-cometchat' 'topic-cursor' 'topic-messaging' 'topic-nextjs' 'topic-react' 'topic-react-native' 'topic-ui-kit' 'transit':203,217,276,377,468,539,1259,1299 'true':360,362,405,445,687,846,1007,1277,1280 'two':342 'type':1065,1097,1100,1126,1129 'ui':136,229,235,352,529,888,1252,1271 'uid':869,875,959,962,1062,1093,1124 'uikit':8,45,97 'uikitset':31,124,1032 'uikitsettings.uikitsettingsbuilder':700,779,834 'uikitsettingsbuild':862 'updat':1036 'uri':180 'url':179 'us':785,786,840 'use':80,119,127,138,154,660,795,1211,1269 'useandroidx':444 'user':57,107,874,881,882,883,914,915,916,937,953,956,957,961,965,967,974,975,1016,1024,1066,1101,1127 'usual':402 'util':987 'v5':424,567 'v6':4,9,27,36,46,98,131,142,149,158,426,569,587,857,1237 'val':649,653,698,777,832,955,995,1008,1022,1030,1038,1058,1089,1120 'valu':737,1133 'via':115,1052 'view':73,213,574 'wire':356,533 'without':296,1284 'won':746 'work':134 'wrote':728","prices":[{"id":"d18ec36f-16cd-4d8c-a597-929237ea82af","listingId":"68177215-b85e-4a04-bfea-bb84a9cbd134","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"cometchat","category":"cometchat-skills","install_from":"skills.sh"},"createdAt":"2026-05-07T13:05:05.528Z"}],"sources":[{"listingId":"68177215-b85e-4a04-bfea-bb84a9cbd134","source":"github","sourceId":"cometchat/cometchat-skills/cometchat-android-v6-core","sourceUrl":"https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-android-v6-core","isPrimary":false,"firstSeenAt":"2026-05-07T13:05:05.528Z","lastSeenAt":"2026-05-18T19:04:46.357Z"}],"details":{"listingId":"68177215-b85e-4a04-bfea-bb84a9cbd134","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"cometchat","slug":"cometchat-android-v6-core","github":{"repo":"cometchat/cometchat-skills","stars":27,"topics":["agent-skills","ai-agent","chat","claude-code","cometchat","cursor","messaging","nextjs","react","react-native","ui-kit"],"license":null,"html_url":"https://github.com/cometchat/cometchat-skills","pushed_at":"2026-05-18T05:04:24Z","description":"Add CometChat chat to any React, Next.js, React Native, Angular, Android, iOS, or Flutter project through your AI coding agent. Works with Claude Code, Cursor, Codex, VS Code Copilot, Windsurf, Cline, Kiro, and 50+ more agents.","skill_md_sha":"dac7f25850e4b585c23bf58037a64a10f5ce89f5","skill_md_path":"skills/cometchat-android-v6-core/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-android-v6-core"},"layout":"multi","source":"github","category":"cometchat-skills","frontmatter":{"name":"cometchat-android-v6-core","license":"MIT","description":"CometChat Android UIKit v6 core setup — Gradle dependencies, SDK initialization, login/logout, and message sending","compatibility":"Android 9.0+ (API 28); Kotlin 1.9+; com.cometchat:chatuikit-compose-android:6.x / com.cometchat:chatuikit-kotlin-android:6.x"},"skills_sh_url":"https://skills.sh/cometchat/cometchat-skills/cometchat-android-v6-core"},"updatedAt":"2026-05-18T19:04:46.357Z"}}