March 15, 2018

Bottle Rocket’s Olympic Hackathon

Over the past week, our developers have been hard at work on (loosely) Olympic-themed projects using the latest features and resources available from Apple, Google, and anything else that caught their attention. Before we dive into the projects and who ended up winning, we wanted to explain the importance of hackathons to Bottle Rocket's culture.

Learn about our yearly hackathon, Rocket Science.

Taking a Moment to Try: 3 Reasons Hackathons Matter

Reason 1: Trial by Tepid Fire

Each year, the tech giants that power the computers in our pockets release a wide range of new features and capabilities for their platforms – though some features you might not see until the following year. Whether the feature is in Beta or because we haven't found a need for it in a client's app, it is important to take the time to learn and play with them anyway. We’d rather constantly run into roadblocks building an app that literally has no purpose instead of discovering the problems in an active project.

Reason 2: They’re Fun

When asked about hackathons, a Rocketeer involved in the event said, “I used to think hackathons were just for kids and college students, but I couldn’t be more wrong. They’re fun, fast-paced, and exciting, which is a great way to get students involved, but they’re still just as fun for adults.” Hackathons are a time away from the pressure of client work, where failure is without consequence. There’s no breaking of keyboards, just laughing along with the insanity of it all.

Reason 3: They Reduce Time-to-Market

Unknowns are the bane of project estimations. The more we know about the tech in question, the fewer variables there are in planning. Instead of jumping into a project that suddenly doubles in duration due to unforeseen problems with a feature or how to best implement it, hackathons give us the time to learn everything we need to know. Then, when the time comes to add a new feature for a client, we already know what to expect.

But enough about hackathons, here’s what happened in our latest event.

Results of Our Olympic Hackathon

In First Place: The PIPlads

This team (seen in photo above) explored the new Android feature Picture-in-Picture mode. The goal was to have a live scoreboard of country medal counts displayed as you use your phone for other day-to-day tasks. They were able to get a functioning prototype completed and even discovered a few fun facts along the way. For instance, they found that if you make the aspect ratio of the minimized screen to extreme, it’ll crash. Also, they found that you could make the panel transparent – a totally useless feature unless you want to confuse your users, but a cool find nonetheless.

Testing Connectivity in iOS 11 by playing a game on two different, emulated devices

Second: The Gas House Gang

Seeking to better understand the capabilities of connectivity in iOS 11, The Gas House Gang made a curling(-like) game in which you slide pucks into area marked with a target. The reason this is interesting is that they had it running in two different applications – not the same application on two devices, but two different applications. While this might not sound like a feat, it shows the potential of having two completely different applications updating in real time to display information from each other.

taking pictures of a muffin and watching it post to the application

Third: The Things

Riding off the concept of tracking athletes’ diets, The Things explored one of the newer sides of IoT devices in the Android ecosystem – Android Things. Using a Raspberry Pi, the team had a functioning prototype that allowed them to photograph the food they were about to eat and then automatically post it to a channel of their choice. This could, for example, allow athletes to easily snap a photo and share it with their dietitian with the click of a button.

Honorable Mentions

Everyone’s a winner in our eyes when it comes to hackathons. While some may not have finished, others found that the technology they were trying to leverage was actually not ready for the spotlight.

Brand New Wizbangs

This team put Apple’s ARKit 2D image detection and face mapping to the test with this face-painting experience. However, they ran into a roadblock trying to merge some features as the application would not allow it and crashed during each attempt to do so.

Javelin

Leveraging Android’s Autofill Framework and Firebase Realtime Database, Javelin worked to create an up-to-date, real-time database that could update information and provide it as an autofill suggestion on the fly.

Alloy

Alloy explored Metal, Apple’s proprietary graphics processing engine, and was able to have the five rings of the Olympics animated used 1,000 triangles.

Monads

The Monads used GraphQL and gRPC to solve API request issues and better refine the answer to a single request from a database instead of having to pull data in multiple requests.

Got an idea for your business but not sure where or how to start? Reach out to Bottle Rocket. We may just have an answer for you.

August 3, 2017

Engineering Jedi: Preparing for Android O

Android O, the upcoming OS for Android revealed at this year’s Google I/O, features many updates that developers are excited about. But you shouldn’t wait until its release to begin thinking about how O will affect your current or future apps. Let’s look at what you can prepare for right now before Android O’s release. Before you dive in, we should explain that we’re not reviewing what’s new for users here—this post is a rundown for Android developers. So let’s talk code!

We’ve divided the subject into two main sections. The first section deals with apps that target any API level and reveals changes that your app will see even without targeting Android O. The second section deals with new APIs and behavior changes when targeting Android O. Both of these sections assume that your app is running on an O device.

All links point to the Android developer preview site and are subject to change once O is officially released into the wild—we’ll update these as they change so you don’t miss out on anything.

Apps Targeting All API Levels

Important Changes

Consider the following behavior changes that will take place even if your app doesn’t target O just yet.

Other Observations

  • On O devices, Notification badges (aka notification dots) are displayed by default (on supported launchers)
  • In Android O, Developer Options > Show Layout Bounds now displays an “X” icon over the element that currently has focus

The full list of changes can be found here.

Testing

You’ll basically want to test out your app on a device with the O Preview or an emulator focusing on system behavior changes and going through all app flows. Read more on this on the Android developer site.

Apps Targeting O (API 26)

Changes requiring action

Consider the following behavior changes that you will need to handle (if they affect your app).

Background execution limits

Check out your strategy around background execution considering the following changes:

  • Apps cannot use their manifests to register for implicit broadcasts. You must register for them at runtime
  • Apps that are running in the background now have limits on how freely they can access background services
  • Wakelocks are removed when the app is backgrounded with no active components (components being an activity, service, broadcast receiver, or content provider)

By default, these restrictions are enabled when targeting O, but the user on an O device can still enable them from Device Settings even if you don’t target O.

Other Changes

  • Notification channels are mandatory. You are required to add at least one notification channel for your app. If you don’t, no notifications will be shown and the system will log an error. To see a Toast when this happens on your O test devices, turn on Settings > Developer options > Show notification channel warnings
  • Set a maximum aspect ratio. The app’s default max screen aspect ratio is no longer set to 1.86 (16:9) when you set your target sdk to 26. Make sure to set a default aspect ratio meta-data entry in your manifest and test your app on the Samsung Galaxy S8 or LG G6. Read more on this Android Developer’s blog post
  • Test any code paths in your app executing sort() and Lists.sort() due to internal changes in O
  • dns1, net.dns2, net.dns3, and net.dns4 are no longer available in O

Optional (but Recommended) Changes

The following is a list of things you are free to implement (or not) in your app. Doing these things is not required but will result in a better experience on O devices.

  • Provide hints on input views (username, password, address, etc) and mark them as important for AutoFill to help the AutoFill framework better understand your app
  • Consider supporting Picture-In-Picture mode if your app focuses on a media playback experience. Note that android:resizableActivity isn’t required to be set if you only want to support PIP and not other multi-window modes
  • Add adaptive launcher icons. Check out the AdaptiveIconPlayground app mentioned here and on GitHub to test how your adaptive icons respond to various masks and demonstrate possible animations using your adaptive icon
  • Consider adjusting your App’s UI to let the user pin app shortcuts and widgets rather than relying on the user manually adding them from their Launcher
  • If you really want to make your Chromebook users happy, consider adding keyboard navigation clusters to your views and viewgroups
  • Consider using Google’s Safe Browsing API on all your WebViews by adding a meta-data entry to your manifest

Other Observations

The full list of Android O behavior changes can be found here.

Testing

You’ll basically want to test out your app on a device with the O Preview or an emulator focusing by targeting O, addressing system behavior changes, implementing O specific features and going through all app flows. Learn more on migrating apps to Android O on the Android developer page.

Want even more insight on Android updates and their impact on brand experiences? As one of only 25 global Android Certified Agencies, we’re always thinking ahead for our clients. Ask your questions at [email protected]

© 2020 Bottle Rocket. All Rights Reserved.