Portfolio

iOS Apps

Image showing the home screen of Bread Timer App.
Home screen of Bread Timer
Image showing a notification posted by Bread Timer on an iPhone.
Notification by Bread Timer
Image of the about page in Bread Timer App.
About page with in app purchase button

Bread Alarm iOS App

Technologies used

  • SwiftUI
  • Combine
  • StoreKit
  • UserNotifications
  • AVKit
  • WebKit
  • Sketch (for drawing the bread illustration)

Idea for this app

When I bake sourdough bread, I start with a higher temperature and then turn down the oven to a lower temperature. In the past I sometimes forgot to set a new timer after setting the first timer. So I built an app that offers two timers that finish after each other.

Features

There are two picker elements to select the amount of time for both temperatures, a label showing the total time and the time when everything will be finished. As time flys by, the pickers also change their value. The app saves it’s state constantly, therefore users can even close the app completely and they will see the states of any unfinished timers. Whenever a timer finishes, the user will get a local notification with a custom sound.

Unfortunately Apple does not allow to override device muting with custom sounds. Therefore, users have to unmute their device. Although you can request this capability for your app, as far as I understood it is only allowed for critical applications (e.g. healthcare). In addition to that, you can request it only as a team and not as a single developer.

I also wanted to learn how to implement in app purchases (IAP) and added one to tip me with 1,09€ (or 0,99USD). For the first time a user buys this, the hat on the home screen gets a nice baker’s hat as an upgrade.

Image showing the comic bread illustration with a hat.
Bread with hat upgrade


Flippy iOS App Homescreen
The homescreen of the app
Flippy App iOS Training Screen
The training screen of the app.

Flippy Vocabulary iOS App

Technologies used

  • UIKit
  • WebKit
  • Storyboards with Auto Layout
  • Sketch (for designing the first prototype)
  • Testflight for Beta testing

About the app

The core feature of the iOS FlippyApp is a very simple adaptive learning algorithm that draws words based on the learning progess. Users can create as much languages they like, everything is saved on their device.

Sharing languages

Users can share languages as csv files for backing them up or editing them on another device. I used Swift’s UIActivityController for that so users can share language files via any supporting service or App, e.g. Mail, WhatsApp, Telegram or Airdrop.

FlippyApp is my first app that I sucessfully released to the iOS AppStore. I learnt a lot about the App Store review process while publishing this first app. You can read more about it here: https://mic.st/blog/my-first-intransparent-app-store-review-adventure/


Other

Chart showing temperature and humidity
Dynamically rendered temperature and humidity charts
Photograht of prototypical setup of a raspberry with three AM2302 sensors.
Prototype with Raspberry Pi Zero W and three temperature / humidity sensors
Photograph of a hand holding three AM2302 temperature and humidity sensors applied to wooden sticks.
Sensors equipped with wooden sticks

Raspberry Pi x Greenhouse

Idea for the project

I am a hobby gardener for quite some time and I always enjoyed to raise up plants from seeds. In the past I relied upon raising them in small plastic bags. This is not always the best option because of the low light conditions that are indoors.

Luckily, I got quite a big greenhouse for my birthday that I equipped floor after floor (it has three 🙃) with LED lights connected to a 230V time switch. I felt the whole thing heating up pretty tropical but I had now idea how much it was actually heating up. So, I decided to put some electronics in there.

The setup

Hardware
  • RaspberryPi Zero W connected to our WiFi
  • 3x AM2302 (temperature & humidity sensor)
  • some meters of three core cable
Software
  • Minimal setup for the Raspberry (Raspbian Lite)
  • Python script for reading the sensors with the library Adafruit_DHT and sending them viarequeststo my backend
  • Cron task executes this python script every 15 minutes
  • My backend is running a MySQL Server where the six values are saved into a table together with a timestamp
  • A PHP-script selects the last 600 entries, i.e. 200 per sensor and renders it to HTML via charts.js

Technologies

  • Electronics, Raspberry Pi
  • Python
  • MySQL
  • PHP
  • HTML, CSS, JavaScript

See it in action: http://mic.st/tempLog/getTemperatures.php