Now available: InspiringBusiness – March 2014

We recently published the latest issue of our InspiringBusiness newsletter, where we discussed how we optimized server-app data sync for the iPad, our work with the N-FORS project and introduced the education plan for ePCR for iPad, one of our products.

Subscribe to our newsletter to receive InspiringBusiness in your email.

iOS7: Because being a developer isn’t hard enough already

Tags:     

For this week’s Lunch and Learn, software engineer Will Helling gave us an overview of the changes he’s discovered as he works to make our ePCR for iPad app compatible with iOS6 and the forthcoming iOS7.

Here are some of the highlights of his presentation:

Design – while the presentation was largely about changes from a developer’s perspective, it’s impossible to talk about iOS7 without mentioning Apple’s radical design changes.

Although they’ve kept their main color scheme (white, blue, grey and black,) Apple decided to allow whitespace to dominate the new design. We noticed that this helps make the content “pop,” compared to the overwhelming frames created by the various toolbars in iOS6.

View control overrides

In iOS7, view controls are automatically set to fullscreen, covering the status bar. However, iOS6 does not have this feature, leaving an awkward gap between the status bar and the view. To ensure compatibility with both operating systems, Will had to use a command that would force fullscreen in iOS6:


Flurry 

iOS7 requires developers using Flurry to update to the most recent version, 4.2.3 – apps not using this version may experience “irrevocable data integrity issues.” Since providing the best tools based on our users demands is a core function of ePCR for iPad, updating this feature was absolutely necessary. In order to update, Will had to download the new SDK and make sure to include Apple’s security framework and ad support framework. And… voila! Flurry is compatible with iOS7.

Libraries

Will also ran into some backend issues with libraries. iOS7 links to the new XML library… but the old XSLT library is incompatible with the new XML library, and the new XSLT library is incompatible with the old XML library. This required Will to do a manual universal compile of LibXML.

iOS7 will be available to consumers sometime next month, but with some users slow to adopt to a new OS, we’ve emphasized making sure ePCR for iPad works on both systems. As these new changes roll out, we also plan to introduce some new features, like a “night mode” that will be easier on users’ eyes at night.

We have a weekly Lunch and Learn where team members share different aspects of their work. Have a topic you’d like to know more about? Let us know in the comments!

Online. Offline. Either. Both.

Last week, Dropbox announced it will be releasing a data sync API for developers to use in their apps. This TechCrunch article about the announcement got our wheels turning on the topic of data synchronization and why it’s such an important part of what we do here at InspiringApps. The need for mobile app data sync is common and significant. You don’t stop working when you lose a network connection – neither should your apps. With our AppSync technology, we’ve got your back.

A lack of connection shouldn’t affect someone’s ability to use an app. At its most basic level, AppSync allows you to use an app offline and syncs automatically as soon as a network connection is available.

As mentioned in the article, supporting data synchronization is a big undertaking, difficult to get right, and beyond the reach of most small shops. We’re proud to have made a big investment in AppSync over several years to support it and continue to improve it in our apps. In fact, AppSync is present in all of our products, as well as many of our client projects.

Naturally, a growing need means there are now several data synchronization solutions on the market. However, most we’ve seen are limited in two important ways when compared to AppSync: support for multiple users and data filtering.

Many solutions are only built to help a single user share data across their own personal devices. For example, the article talks about remembering your current page when reading a book on multiple devices. That is true for Apple’s iCloud, and it sounds like it may be true for Dropbox, too. While individuals can benefit from this type of sync, it isn’t very helpful for business apps, which have several users who need access to synchronized data within the app.

There are a few data sync solutions that do support the synchronization of data across multiple users. With these solutions, though, all users typically get all of the same data. There are many apps, especially simple ones without a lot of data, where synchronizing all of the data to all users is perfectly acceptable. However, organizations often need to filter data among their users. AppSync is capable of that type of data filtering to reduce the amount of data transferred to most mobile users– sometimes dramatically less data.

In many mobile apps we build for sales organizations, sales reps only need to see (and sync) data related to their assigned accounts. Sales managers need to see all of the data related to all of the reps they supervise, and regional managers need to see all of the data related to all of the reps who report to all of the managers in their region. The user experience for an individual rep will be greatly hampered if the app has to retrieve loads of data from the server that they will never see in the app’s interface (because they don’t have access to it). Instead, AppSync can deliver only the data they need, greatly reducing sync times and local data storage requirements for most users.

In-app data synchronization is a feature growing in popularity, with tech giants like Dropbox and Apple throwing their hats in the ring. But these new solutions still lack essential features like support for multiple users and data filtering. We’ve put a lot of work into AppSync to ensure that it supports the way in which you work– with your mobile workforce in a disconnected world.

To learn more about AppSync’s features, check out the newest edition of InspiringBusiness.

Interested in working with us? Contact info@inspiringapps.com.

My Open Source Contributions (or GitHub is Awesome)

I love open source projects and I love github. The github platform for easily and efficiently working in a distributed group in an asynchronous manner is second to none. Lately I’ve found myself submitting more pull requests than I’ve ever done and I’ve found the experience really awesome.

The thing I’ve liked most about using pull requests is that I’m free to mess up. When contributing to an open source project that other people look at, I’m afraid of looking stupid to everyone else, especially if my code is immediately merged into the codebase. I don’t want to be the guy that breaks the application for everyone else. Pull requests give me a safety net for people to review my contribution, give me feedback, and give me a chance to make corrections or improvements. I’m eager to get feedback because it most likely means I’ll learn something that I didn’t know and I’ll be a better developer because of it. And worst case scenario – my code breaks everything – it was just as much the fault of the pull request reviewer as it was mine (which is no excuse to make the same mistake twice though), which allows me to not stress that everything needs to be absolutely perfect before submitting. That’s the great thing about open source code – someone can do the first 80% of the work and then someone else can swoop in and help with the last 20%.

Read More

Right Tool for the Job

It has been said that when you have only a hammer, you see every problem as a nail. At InspiringApps, we enjoy the variety that comes from having lots of tools in our collective toolbox. We build mobile web apps. We build native mobile apps. When we build native apps, sometimes we do so with Objective-C and Java. Other times, we use a cross-platform framework that allows us to build the same app for multiple platforms using a single code base. Today I’m going to talk about one of those cross-platform frameworks.

Titanium is a mobile development framework from Appcelerator. On the surface, Titanium app developers write the code in JavaScript for all platforms. That is the business logic. It is the code that defines the user interface and the user’s interaction with it. It defines all of the behavior for the app.

Read More

Documentation Challenges

I have found there are a number of challenges to writing thorough documentation, and I’d like to discuss those here.

The following is not intended to be exhaustive or complete in anyway. While these ideas would likely apply to all forms of documentation, I’ll keep this to my personal experiences.

Additionally, the following may not be applicable or correct for all projects. Rather, this is really just the musings of a developer who wrestles with (in a good way) creating documentation that will be useful to others.
Read More

Coderwall Highlights from Team InspiringApps

Since joining Coderwall (read my last post here to learn why we decided to start using Coderwall), the InspiringApps team has been giving out loads of great developer tips and been getting an amazing response from the community. Here’s a summary of our best tips:

Symbolicating an iOS crash log without the original dSYM file” by Will

Will, our awesome iOS developer, was able to share some experience debugging app crash scenarios when you only have pieces of the puzzle. His in-depth tutorial got a great response from the Coderwall community, including almost 800 views and almost 10 votes.

Read More

The Global Nerd – InspiringApps Joins Coderwall

InspiringApps is on Coderwall! Coderwall is the next evolution of helping the world-wide developer community grow and we’ve joined it. Follow our InspiringApps team on Coderwall to see all of our pro tips from our work in building world-class business mobile apps for our clients!

There have always been nerds, they just didn’t know it. In the long-long-ago, nerds spent hours in their basements with a piece of hardware toying around in complete solitude, never speaking to anyone about their nerdy adventures. These nerds gained huge knowledge bases in their heads from their experiences, but in their heads they remained. Nerds didn’t realize there were other nerds, so they had no opportunity to share knowledge. The progression of science and all things important ran in duplicated parallel in solitary basements around the world.

Read More

Framework

Book Excerpt: Development Tools, Technologies and Frameworks

What are my options for tools, technologies and frameworks, and how do I determine the best route?

Let’s consider the options. The native development language for iOS (Apple’s operating system) is Objective-C®. Java is the development language for Android and BlackBerry OS. Windows Phone 7+ uses .NET. Code written in one of those languages is not transferable to the other platforms. If you want to deploy your app on iOS and Android, you will effectively double the development cost of your app since it will need to be written twice—once in Objective—C and once in Java.

Or will you? Enter web technologies and cross-platform frameworks.

Although the native development varies across platforms, three of the top four operating systems (Windows Phone 7+ excluded) feature browsers based on the WebKit engine. WebKit handles the hard work of rendering web page content consistently in the browser. Since the same browser engine is at the heart of most touch-based mobile devices, developing your mobile app with web technologies is a sensible way to reduce development costs on a cross-platform project.

Read More

Code

Book Excerpt: IP and App Development – Who Owns the Code?

Who owns the code behind my app?

Assuming new code will be written for your project, you will need to determine the appropriate way to handle the ownership and/or licensing of that intellectual property. You should always consult with an attorney to determine the best approach for your circumstances. Here are some options you may consider.

You Own It All

Most customers start with the expectation that they will be the sole owners of all code that becomes part of their app. This is a reasonable expectation and one possible outcome. But requiring all original code to be entirely client-owned may lead to a more expensive project. If you contract with an experienced development partner, they will likely have access to a library of previously developed, thoroughly tested code which will help them develop more interesting, complete solutions for you more quickly. To accomplish your goal of owning the entire completed work product, the developer will have to forgo use of their framework and start with a blank canvas.

Read More

« Previous page Next page »

Interested in industry news and trends?

Sign up for our monthly email to get the highlights on technologies and innovations impacting mobile strategy.