CHECK24 Profis Android Git Commits of 2022 Visualised

Android Paging without Paging 2/3 Library

Context, Resources & You

Good starting point: https://developer.android.com/guide/components/fundamentals

Understand Android Lifecycle Aware Coroutine Scope

DroidCon Berlin 2021

Finally a live event again. 95 tech talks, 5 simultaneously for 3 days, 1200+ Android Developers, 87 Speaker by over 50 different companies participated. Topics ranged from `new` technologies, e.g. Jetpack Compose, KMM to how to improve productivity, testing, build times, API design. In short: how to become a better developer.

This time with 25 Checkitos. My whole android developer team was there.

We even had our own booth which lead to a lot of interesting conversations what we do and how CHECK24 works.

I've participated on the GDE coding challenge. It's a pretty cool idea. over the course of the entire droidcon, everyone can participate and code for 15 minutes which can now be found here.

Future Proofing Android App Team at CHECK24

App Development Workflow

DIY Geiger Counter

After watching HBO's Chernobyl Series and stumbling upon this awesome article about someone building a steampunk desktop background radiation monitor I was inspired to build a radiation monitor myself. I'm aleady being using a Raspberry PI with pi-hole so I only needed to buy a a radiation detector from Amazon UK.

61Slv1uad0L-AC-SL1000.jpg

The following image shows to connect the pi with the Geiger-Counter-RadiationD-v1.1-CAJOE board.

pi-geiger-simple.png
How it works can be read here. Essentially there is a J305 pulse halogen tube connected to an Arduino board that will measure gamma rays from 20mR/h to 120mR/h and beta rays from 100~1800.

We can access the raspberry pi pins with the GPIO API. If we run pinout we see the following pin configurations.
pinout.png
The red cable goes on pin 2 and the black cable goes to pin number 6. Finally the green cable goes to pin number 7 which we use in our python script to count and measure pulse events which can we can then multiply with the J305 tube usvh ratio constant. Et voilà my living room has a background radiation between 0.13 and 0.35 µSv per hour.  
Screenshot-2021-03-28-at-154935.png

Is that a lot? Not really. 0.1 μSv is also known as BED (Banana Equivalent Dose)

Here is a great video to get radiation into perspective:

MVP vs MVVM vs MVI

Short summary of this really well written article:

Pattern overview

MVP, MVVM, and MVI are some of the common patterns in Android and they can broadly be thought of as different flavours of the same core concept — abstracting logic from the UI into classes without references to Android. The main way in which they differ is how those classes accept their inputs and how they then output updates to the UI.

Generally speaking the goal is to separate concerns and have a Unidirectional Data Flow.


MVP

The defining feature of MVP is that data is communicated back to the view imperatively.


MVVM

MVVM differs from MVP is in how data is communicated back to the view. Rather than imperatively calling the view, in MVVM changes are described by data which are then observable by the view. The UI can then reactively re-compose itself based on the new data.


MVI

This is a very similar pattern to MVVM, with some important differences. In many ways it’s a merging of MVVM & Redux. MVI pre-defines a selection of events the ViewModel handles and the view publishes a stream of these events as they happen. But the major difference is communication back to the view. Whereas in MVVM there is usually a separate publisher for each piece of data, in MVI a single object defining the entire state of the view is published. Often there’s a section of MVI which follows Redux style reducing.

Remove git HEAD branch

HEAD is a pointer to a commit (usually master) so when you checkout your repository the commit which HEAD points at will be checked out. Usually you'd want it if when checking out you want a different branch or tag to be checked out.

You can take a look at what it's pointing out by issuing the following command:

And you'll probably see something like the following: origin/HEAD -> origin/master

You can delete HEAD if you don't need it (although it doesn't do any harm being there) by issuing the following command: 

Note: on github there is already an checkbox you can check under Settings > Options.

Sketch Vector Graphics (SVG) for Android

The two following medium articles are explaining the best strategy

How to export clean .svg icons with Sketch

Tips for exporting vector assets from Sketch to Android
Design best practices for Android mobile App (with SketchApp)

In a nutshell:
  • Avoid using masks - they're not supported
  • fill rule: ‘fill-rule:evenodd’ is not supported
  • transforms on path are not supported, use option Bake transforms into path
  • avoid groups
  • avoid rotations
  • Make outlines, not strokes
  • Pathfinders are your friend
  • Adobe Illustrator is the best troubleshooter
  • Combined and transformed shapes may not appear as what they seem
  • Transparencies are your friend...
  • …and gradients are not
  • Export artboards, not layers
  • Flattening shapes will solve most problems
  • If your shape has a border, use an centre border
  • Text directly are not supported - text need to be converted to curves

    Bonus
  • try out vector optimization tools, e.g.  svgo-compressor or avocado 

Jira Ticket Templates