How we use Java
Taking over a Java app usually starts with a build that runs on current Android Gradle tooling and a target SDK that meets store requirements. From there we add tests around the areas that change most, because a legacy app without tests is expensive to touch.
Kotlin and Java compile into the same bytecode, so migration does not need a big-bang rewrite. New features go in Kotlin, old classes stay in Java until there is a reason to change them, and both live in one module. On the server side we work with Spring Boot services that are already in production.
What we build with it
- Updates and new features for existing Java Android apps
- Third-party SDK integration: payments, maps, analytics
- Step-by-step migration from Java to Kotlin
- Support for JVM backend services built on Spring Boot
Toolkit
- Android SDK
- Gradle
- Retrofit and OkHttp
- JUnit and Mockito
- Spring Boot
How we keep Java code healthy
- Characterisation tests before refactoring old code
- Static analysis with Android Lint and Error Prone
- Dependency updates on a regular schedule
- Target SDK kept in line with Google Play rules
Questions about Java
Will you rewrite our Java app from scratch?
Usually not. A rewrite freezes the product for months. We improve the existing code in place and convert parts to Kotlin as they change.
Do you take over apps written by another team?
Yes. We start with a code and build review and describe what we found before any change is planned.