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.
Blog Posts Related to 'Development'
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.
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.
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.
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.
Development doesn't stop once a v1.0 app is live. Your newly launched app will need to have regular app updates to thrive. Whether it’s a new feature or a bug fix, it will be important to continue to develop and test these updates prior to shipping them to app stores. This can be challenging, however, as you need to develop these updates and distribute them to testers without interrupting the experience of users who are interacting with the live app.
If all you've ever done in the past is iOS development, looking to build an app on Android might make you feel like you're entering the Wild West. Things seem more fragmented, more dangerous, more complex, more green. In 2016 though, Android isn't necessarily more difficult than iOS. The majority of your domain knowledge and expertise of building mobile apps on one platform can be applied to the other with ease. You may even find yourself enjoying some of Android's development components more than iOS. Here's a Savvy Apps guide to the top considerations for developers making the move from iOS to Android, including a list of how the main iOS components are laid out in Android.
Like many in the app community, we've been big fans of Parse at Savvy Apps. We were more than surprised by the news last Thursday that the Parse service will shut down in a year. Parse allowed us to reduce the costs of backend development for our startup and early-stage customers in particular. Even some of our larger brand and media-oriented customers used Parse, especially for sending push notifications or for quickly standing up APIs.
Since its 1.0 release in September 2014, Savvy Apps' development team has been experimenting with and using Swift in iOS projects. Though the majority of our current projects remain in Objective-C because of the relative youth of Swift, we've started coding new projects in Swift since its 2.0 release in September 2015. Keep in mind that most of our work with Swift is for iOS apps as it stands in January 2016.
For those of us developers working on platforms like iOS, Xcode permeates our day-to-day duties. If we're not coding or debugging in Xcode, we're usually still using it to run a test app on one of our devices. Xcode isn't all about coding. In the three years I've used Xcode, I've tackled a surprising variety of activities, from viewing source control diffs to measuring how well an app is performing. After spending countless hours in the tool and reading up on tutorials from other iOS developers in the community, I decided to pay it forward with my own list of my favorite Xcode hacks I use on a daily basis. I also polled the rest of Savvy's developer team to make this list as comprehensive as possible to save you time, up your accuracy, and make you a more proficient and productive developer.