Blog Posts Related to 'Development'

Using Advanced Auto Layout Techniques to Adapt Interfaces to Screen and Content

At Savvy Apps, we've been using Auto Layout since 2012, back when it was first introduced in iOS. Auto Layout is a powerful tool that makes creating dynamic interfaces much easier, requiring very little or no coding at all. We've noticed that in many cases Auto Layout is not used to its full potential. This improper usage sometimes leads to layouts that are too constrained and don't adapt well to changes in content or font size. 

Keep Reading

Choosing a Firebase Database For Your App: Realtime Database vs. Cloud Firestore

Over the last few years Firebase has seen success with what's now called its Realtime Database, a tool that allows developers to set up and provision a back-end database as a service more easily. For example, we previously shared our experience at Savvy Apps with Realtime Database on Google's Firebase blog for our work with Sprynt. Developers continue to choose Realtime Database because of its low barrier of entry, low maintenance costs, and fast queries. The system certainly isn't without its drawbacks, however, leading to others looking at alternatives to Firebase.

Keep Reading

ToggleButtonLayout: Easily Create Toggle Buttons for Your Android App

While Android provides floating action buttons, navigation views, and other useful items in its design support library, there's no out-of-the-box solution for the oft-used toggle button. Commonly applied to stylize text or filter search results and other content, the toggle button is a staple in most apps. It can also be time-consuming to create. 

Keep Reading

A Massive Guide to Building a RESTful API for Your Mobile App

We build apps of all shapes and sizes here at Savvy Apps, but a common element is that they communicate with servers. Very few apps today operate without some sort of Internet connectivity, meaning that they interact with a backend, web services, or APIs. These APIs could be provided by Google, Amazon, Facebook, or comparable third-parties. They also could be APIs that are developed internally. 

Keep Reading

Can Core ML in iOS Really Do Hot Dog Detection Without Server-side Processing?

Machine learning has quickly become an important bedrock for a variety of applications. Its mobile implementation, however, has been out of reach for many in the mobile app development community. The training and implementation processes for machine learning libraries require dedicated processing power, which is outside the purview of mobile devices. That processing power requirement and existing frameworks usually mean that a server-side component is necessary for even the smallest, machine learning-backed apps. Finally, training a machine learning model requires a good deal of knowledge that lies outside the normal developer spectrum.

Keep Reading

16 Kotlin Tips for Android Development

Savvy Apps started using Kotlin for its new Android projects late in 2016, right around when Kotlin 1.0.4 was released. Initially, we saw an opportunity to try out Kotlin on a smaller scale project. Once we tried it out and saw the ease of use, being able to easily separate functionality from business logic using extensions, and generally, the hours of development time it saved for us, we decided it would be the language of choice moving forward. Since then, we've used Kotlin to create multiple Android apps and have also developed a number of internal Kotlin libraries. 

Keep Reading

Beyond Constraints: Crafting Advanced iOS Animations with Auto Layout

How we think about design at Savvy Apps encouraged us to develop a new animation technique that mixes old-school view animations with Auto Layout. Our technique bypasses the restrictions placed on developers when they try to animate using Auto Layout. Most Auto Layout animation guides say basically the same thing: update constraints and animate. For more advanced animations though, just updating the constraints would be nearly impossible.

By relying only on constraints, you're restricting yourself on the types of animations you can achieve in your app. This article dives into how to get around the limitations of constraints. By using Auto Layout in new ways, we will show how to create more advanced animations.

Keep Reading

SAAnimationView: A Framework to Programmatically Create iOS Animations

Last year we started working on a framework that was initially inspired by an animation in a podcasting app we crafted for The Cato Institute called CatoAudio. Our work with CatoAudio helped us realize that we wanted an animation framework that would allow us to create a simple, smooth animation that could easily be paused, resumed, and reversed. So far we've used this framework we call SAAnimationView on a number of projects. We decided to release it outside of Savvy Apps so other developers can take advantage of the way it makes it easy to create and iterate on animations.

Keep Reading

Tips for Creating Your Own Interactive iOS Animations

Animations in iOS offer functional context to users and provide developers with a simple way to bring designs to life. While Apple provides two common methods for animations, `UIView.animateWithDuration:animations:` and CAAnimations, they either sacrifice flexibility or create a lot of boilerplate code. That’s why at Savvy Apps we advocate learning the components and concepts of animations. This approach allows developers the freedom to find new ways to do animations. In this post, we define the components of an animation, as well as provide tips for creating and experimenting with interactive animations.

Keep Reading

The Ultimate Guide to Choosing Objective-C or Swift for Your Project

Deciding whether to use Objective-C or Swift for a project isn't always a clear-cut decision; there are a number of factors to take into account every time you start a new project. We decided to tackle this topic because it's one of the most common questions we hear from developers. Selecting the most appropriate language depends on project and team context, as well as preference and often, allegiance to a particular programming language.

Keep Reading

You made it this far so...