MF LED Flashlight (with Compass, Strobe, SOS & Morse Code) for Android

Get it on Google Play

Yep, thought it was time for another LED flashlight app in the flashlight jungle. Since Android 5 Lollipop comes with built-in flashlight widget, and precisely because it is a jungle of flashlight apps, I was completely aware that this could turn out to be a tricky project.

Anyway, I decided go for it, but to make this app stand out from the rest I couldn’t develop just another flashlight. It had to be something more. I did my research to find the most popular features were among the popular flashlight apps. I found 8 common features, but thankfully no one of those had them all. The reason for that is probably that the interface would get too crowded if all of them were implemented. Here they are:
  • Uses the camera LED light as light source, but falls back to screen light for unsupported devices.
  • Has strobe light (blinking mode).
  • Has SOS-signaling.
  • Uses sound effects for when the light is turned on and off.
  • Has a compass.
  • Has a Morse code transmitter.
  • Displays battery status and/or a clock.
  • Has a widget.
  • Has a setting to make the flashlight automatically turn off the light after selected time limit passed
Ok, if I just could implement all of these features without cluttering up the app interface. One obvious way of doing that was to use the same navigational structure as well known apps such as Gmail, YouTube, or the Google Play Store -app itself use. That is, having a navigation drawer menu that slides out from the edge of the screen. I decided on using a navigation drawer. I went on with my research to find any weaknesses in the way the above popular features were implemented. I found these:
  • The SOS-signaling feature almost always had a fixed speed.
  • Some of the apps with sound had no way of turning it off.
  • On those few apps with compass, many behaved strange even when not close to magnetic disturbances, and no one of them had a detailed compass view.
  • The morse code transmitter were pretty good on those few apps that had this feature. You enter a text, and send it off as light signals. However, no one had a signal lamp to manually do some morse signaling. Hardly not a crucial feature, but this could be nerdy fun for those wanting to learn morse code.
  • Since the LED or screen light does draw some battery, battery status should be visible. Almost all flashlight apps hide the status bar and implements their own battery status icon. Some had their custom clocks as well, since hiding the status bar also hides the clock. This felt a bit like reinventing the wheel. The status bar is small and non intrusive. Unless its a game or camera app I see no reason to hide it. I guess the reason many of them hide the status bar is to make the screen light light up as much as possible of the screen area, but since most mobile phones these days have LED-light, and since the status bar – as already mentioned – is rather small and non intrusive, this feels rather unnecessary.
  • On some of them the screen brightness was set to maximum as soon as the app launched (drains the battery).
  • Some of them didn’t have a widget that could be added to the lock screen.
To sum it up I wanted an app that:
  • Uses the LED-light, but falls back to screen light on devices without camera LED, or devices where the LED cannot be detected.
  • Has a strobe with adjustable speed.
  • Has a SOS-signaling feature with adjustable speed.
  • Has interface sound effects that can be turned off.
  • Has a detailed compass (and a low pass filter to avoid strange behaviour).
  • Has a morse code transmitter and a signal lamp with a morse code reference.
  • Doesn’t hide the status bar (clock, battery, fully visible).
  • Doesn’t set maximum display brightness.
  • Has a widget for both home and lock screen.
  • Has a timer setting for automatic light off
By using the navigation drawer design I could split up the functionality in different views accessible thru the navigation drawer menu. These are the views:
  • Flashlight view (default main view, opens up as the app launches) At the top of the flashlight view is a strobe wheel. Below the strobe wheel are 2 buttons to choose between common strobe pattern or SOS pattern. Between the buttons there is a field for displaying current blinking/strobe or SOS-signaling speed. Speed 0 means steady light no matter if strobe or SOS mode is chosen. Next comes the compass. It looks kind of nice with a compass on the flashlight view, but since a detailed compass would be too big I decided to make a smaller and less detailed compass for the this view, and a larger more detailed compass on its own view. Below the compass is a large light switch button.
  • Compass view (the big detailed compass) At top of this view you see a field displaying the degree. Below is the detailed compass.
  • Morse view The morse code transmitter (text-to-morse, translates text to morse light signals) and the signal lamp felt like they should go together, so I split them up in 2 tabs within the same view. One for the text-to-morse feature, and one for the signal lamp.

Get it on Google Play

Hopefully I managed to develop a flashlight thats not just a flashlight.

Feedback form

One Response

  1. […] In short: Its not just a flashlight. Read more here: LED Flashlight design decisions […]