Late last year, we decided to standardize on Sketch as our tool of choice for creating low-fidelity wireframes. Previously we were fans of Balsamiq, mostly because it had a number of pre-built app elements that could be dragged and dropped into a mockup. While we enjoyed the polish and precision of Sketch, not having a similar feature required us to spend valuable time on creating and recreating the same elements in our wireframes.
This year's Google I/O was all about AI and it’s computing power. Google showcased its 17-year focus in organizing the world’s information via the Google Assistant—previously Google Now—in products like Google Home and Allo. Its machine-learning demos were impressive and its custom chip focused on machine learning in AI servers probably didn’t generate the wow factor it deserved.
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.