I’m Bobby, an Android Dev and (still) an app hobbyist
example of claude code settings.json that declare multiple version of model (generated by fable 5.1 and using fake application inference profiles)
{
"model": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/g7h8i9j0k1l2",
"awsAuthRefresh": "aws sso login --profile your-profile",
"env": {
"CLAUDE_CODE_USE_BEDROCK": "1",
"AWS_PROFILE": "your-profile",
"AWS_REGION": "ap-northeast-1",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/a1b2c3d4e5f6",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/g7h8i9j0k1l2",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/m3n4o5p6q7r8"
},
"modelPicker": {
"replaceBuiltInOptions": true,
"options": [
{
"model": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/a1b2c3d4e5f6",
"label": "Opus 4.8",
"description": "Complex reasoning"
},
{
"model": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/s9t0u1v2w3x4",
"label": "Opus 4.6"
},
{
"model": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/g7h8i9j0k1l2",
"label": "Sonnet 4.6",
"description": "Daily coding"
},
{
"model": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/y5z6a7b8c9d0",
"label": "Sonnet 4.5"
},
{
"model": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/m3n4o5p6q7r8",
"label": "Haiku 4.5",
"description": "Fast, lightweight tasks"
}
]
}
}
// module: benchmark
// androidx.benchmark:benchmark-macro + benchmark-junit4
class MapperBenchmark {
@Test fun mapList_1000() = benchmarkRule.measureRepeated {
val dtos = buildFakeDtos(1000)
runWithTimingDisabled { /* warmup/setup */ }
UserMapper.mapList(dtos)
}
}
Talks is presented by Jetbrains Dev Rels
Although the AI demo is mostly from a Video, its demoing Interesting stuff:
The Session begins with explaining how the Compose Work
Case Koruri Declarative Audio Processing Library Wave manipulation (pitch, volume) drawed as a block
Chain {
SineWave()
Volume()
}
Mix {
SineWave()
SineWave()
}
the interesting is, the library is complete the Compose capability to making a multimedia (Synthesizer), since now the wave manipulation can integrate seamlessly in the same approach in composable structure and state (UI state like touch or slide)
Tips when make Gen AI (Prompt Handling)
Series of Article about Android Performance
These days, an app isn’t just about building features — it also needs proper logging (performance, analytics). The problem is, teams often don’t have a clear agreement on how to do it, which leads to confusion when debugging and makes the business logic messy with logging code.
When i stumbled upon the AOP Concept it might the proper framework to help implementing the logs, lets see whether this one can help
to fix the java 11 requirement, need to install java 11 first, and add the line below on root gradle.properties then sync the project
org.gradle.java.home=/Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home
Interesting tools (approach)
git filter-branch manually check git historyThree Phase in Compose
Compose can skip a phase entirely if nothing has changed in it
Prefer lambda modifiers when using frequently changing state, the video show case is using the scroll provider lambda over y property when performing translation, and reading the state inside the graphicsLayer
Since i often forget to about the name of the Version, the codename and the site is include the play store requirement changes, and major library info
Separate assert and code triggering into 2 different set of coroutine launch
UnconfinedTestDispatcherPlease note that when using flow the code triggering should still use a separate launch and not inside the test block