At Shockoe we’re used to integrating our clients’ complicated backend systems into our apps, and this often includes push notifications. However, to get that initial proof that our app is playing nicely with GCM and APNS we’ll sometimes rig up a sandbox server of our own. Since we’re used to JavaScript, Node is an obvious go-to. Here are the steps for rigging up a simple push notification server in Node.js. If you’re looking for a deeper dive into messaging 2018, you can also check out Shockoe’s Innovative Brand Messaging in a World Noise page shown below — it’s just as important to know when to use push notifications, especially in today’s saturated push-notification environment.

How to Message in a World of Noise

Push notifications without a sound messaging strategy can be quickly damaging to a brand’s reputation. See how Shockoe is working with leading companies to build the right messaging tactics to delight the modern-day user.

A push notification server consists of two parts: storing deviceIds and sending push notifications. To achieve this we’ll create two endpoints: register and send. Register will utilize the mongodb node module mongoose and Send will leverage two platform-specific node modules: apns and node-gcm. We’ll also be using restify to set up our endpoints.

Register

For a basic implementation we only need two pieces of information: the deviceId and platform (Android or iOS). Technically–in some mongoose schema code golf scenario–we just need the deviceId, and could make both calls with one always failing.

So our mongoose schema, with the proper requirements, would look something like this:

Mongoose is generally a lot more powerful than this implementation, with validations and enumerations that allow for easy error checking, but for the purposes of this demo we’ll use a basic schema. After making sure mongodb is installed and running on your machine, our restify endpoint would look something like this:

Ideally we would perform a find on DeviceSchema to make sure we’re not adding duplicate devices.

Send

For Send we’ll implement a basic endpoint that will send a push notification to every device in the database. We can use a simple GET, grab the devices from mongo, and call functions to send the push, based on whether the target is an iOS or an Android device. The Android push module can take an array of deviceId’s instead of one at a time, so we’ll push those ids onto an array and call the sendAndroid function on all of them.

After that it’s just a simple matter of running your project and you’re ready to hit these endpoints and test push notifications on your app!

Want to chat about Push in your App?

We’re all ears! We’ll help your team communicate with your audience more effectively through app-based push notifications. Give us a ring and our team of strategist and developers will discuss with you ways to bring your team’s strategy up to tomorrow’s standards.

After months of development, your app finally makes it onto the app store. However, a few weeks later, you take a look at the app’s analytics to find an unexpectedly high number of total uninstalls.

Why are users deleting your app and what can you do to improve user engagement?

1. Improve User Onboarding
A crucial, often overlooked process in designing an app is the user onboarding process. User onboarding is essentially the method in which the app introduces itself to a new user. Within the first few minutes of use, your app should make a solid first impression.

Resolution:
– Start the app off with a friendly tour to get the user acquainted with the main features
– Highlight features one at a time – do not overwhelm your user with introductions to all of the features at once
– Place mission critical information upfront and concisely
– Place user values upfront – You want the user to envision how they will be using your app in their day to day life as soon as possible.

Below are a few examples on user onboarding on Winn Dixie. Our UX and UI designers put great care into the onboarding strategy– putting the designs through various critiques and presentations with the client. User Onboarding testing was implemented as early as wireframes.

2. Reduce Clicks
Ideally, a user wants to use the least amount of clicks to get to the information they want. Information or features buried into tabs and menus may infuriate users trying to accomplish a simple task. Sometimes the cost of effort may not be worth the payoff for a user.

Resolution:
To resolve these pains, consider bringing in various testers as early as the design phase. Sometimes paper prototypes can be very telling of a user’s engagement of an app based off something as simple as an app’s layout. Reduce the amount of effort a user has to make by designing the method of navigation with well-defined paths.

3. Debug your app

On first glance through reviews of a low rated app, the number one issue reported by users is: the app is buggy and keeps crashing. The bane to any user on any software is one that they can not use properly. Buggy apps can be caused by a multitude of occurrences. Here are the top three reasons why your app may be buggy and bugging your customers away:
– Android or iOS hardware and software have updated causing your app to be out of date
– Uncaught memory leaks
– Weak user testing

Late last year to in anticipation for the release of iOS 10, the Shockoe development team thoroughly prepared by catching up on documentation and thumbing through depreciated features. Apps like 21st Century were given an update to ensure that the app would not be out of date. Changes included improvements to security and touch ups on depreciated UI features.

Resolution:
Test the app thoroughly to find as many bugs as possible and prepare another cycle of development! At the end of development, put the app through another round of testing to ensure that your app is functioning as ideally as possible.

Positive user engagement is essential to maintaining users. While the suggested improvements drive to enhance user experience on your app, be prepared to take note and study of how these methods impact user interaction. Taking a closer look into what propels users to continue to use your app or what you find users interacting the most within your app will greatly help you analyze and improve positive points in your mobile solution.

Want to stay connected on all things mobile?

Sign up for the Shockoe newsletter and we'll keep you updated with the latest blogs, podcasts, and events focused on emerging mobile trends.

Earlier this week, I was debugging and I was reminded of the sheer power of the XCode developer tools, even in the context of a not-quite-native application like a titanium application.

The Problem

Andrew was working on an application that will load in a large number of images and PDFs from a remote server and display them to the user, in-app. However, when we got to the point that we would be displaying a certain one of our images, we saw this in the Titanium console:

Sorry, what? It seems like something odd is happening at a native level, and Titanium is getting too confused to return a sensible error message. Well, guess it’s time to open a support ticket with Appcelerator and wait for them to figure out what the issue could be, right?

Wrong. One of my favorite things about Appcelerator Titanium is its open-source nature. What we can do from here, is open up the native project generated by Titanium and debug it with the normal native debugging tools. When you build a Titanium application for iOS, a (pretty much) normal XCode project is generated from your project, compiled, and run on whatever test device you have selected. In situations like this, we can take that project and manually re-build it in XCode for debugging purposes.

Opening your project in XCode

To open your project in XCode, first run

ti build -p ios --build-only

in your project’s directory. This will ensure you have a native project generated for your Titanium project. From here, all you need to do is open XCode, and open up the XCode project in the build/iphone folder.

Setting Native Breakpoints

Now that we’ve got the project in XCode, we need to set up a native breakpoint so that we can see what the issue is with the Objective-C code that Titanium is executing on our behalf. Fortunately, the message that Titanium printed out gave us a selector name:

-[TiUIImageView setImage_:]

. Let’s go ahead and set up a symbolic breakpoint for that selector:

Enter the XCode debugger

Now that we’ve got our breakpoints set up, we can run the project in XCode, and execution will stop when our breakpoint is hit in the Titanium SDK code.

Let’s go ahead and step over a few commands and see if we can figure out exactly what’s going wrong.

Huh, it looks like we’re having some issue turning our Titanium file into a UIImage that we can apply to the native UIImageView. Let’s use the variable inspector to figure out exactly why we’re failing to convert this into an iOS image.

Well, one look at the MIME type is enough to see exactly what’s wrong. Our file isn’t an image! Even though this didn’t tell us exactly where the issue was, it was enough to direct our debugging (we eventually figured out that we were accidentally saving a PDF file as an image – oops!). Issues like this are why I’m very quick to reach for XCode when I see a native iOS issue – it makes it much easier to figure out what parts of your code might be incorrect when you can easily trace through Appcelerator’s code!

The recent launch of Apple’s new iOS7 has many talking about how the new version of the operating system was the final death knell of Apple’s skeuomorphic roots, but beyond the style and sleekness of the upgrade, the enterprise should see the feature dense iOS7 as a major force in driving enterprises to mobile.

Security has and will continue to remain a major concern for the enterprise, but as Q2ebanking.com’s CSO Jay McLaughlin recently stated, the iPhone is by far the most secure device to try and integrate into the enterprise — as long as users aren’t jail-breaking the device.

“iOS 7 presents new vulnerabilities in the fact it contains new code, technology and features,” McLaughlin told TechRadar.com. “Once discovered, you’ll see new exploits created – many of which would be used for jailbreaking purposes – which inherently breaks and destroys the strength of Apple’s underlying security model for iOS. […] Historically, Apple has tightened its security within iOS with each subsequent release, adding stronger encryption, Data Execution Prevention, ASLR and the new A7 processor’s ‘Secure Enclave.’ As such, when in a non-jailbroken state, the iPhone is one of the most secure consumer devices.”

Here is eight features of Apple’s iOS7 that will change the business world for the better:

“I’ve already decided [TouchID] will be a game-changer. In concert with new Activation Lock features in iOS 7 — GPS tracking can’t be deactivated and access to the iPhone is blocked without entering your iCloud username and password, even after a device wipe! — it’s hard to see this as anything but a major win for security.

[…]

The hoops someone would have to jump through to hack into the phone — lifting fingerprints, making a fake print using latex — are complicated, if they even work at all. For me, this doesn’t change its usefulness; it’s just a reminder that no security function is 100% foolproof.”

Weak passwords, disabled security locks and misplaced devices are what keep security-minded companies up at night when thinking about extending mobile in the enterprise. While not perfect, fingerprint-based authentication in concert with the Activation Lock and device wipe capabilities can allow companies to quickly intervene in a potential security violation before sensitive data is compromised. Better to wipe a $200 smartphone quickly than expose a business to tens of thousands, or even millions of dollars to a potential data breach while a would-be hacker fiddles with latex fingerprint molds.

Simplicity With Enterprise Single-Sign-On

For the busy folks on the front line delivering packages, checking manifests and entering patient data and all the while jumping between programs to do so, the repetitive authentication for each transaction can become major deterrent in the use of the products, or at the very least the secure use of them. What if that worker could log into a CRM app and then jump into an order-tracking app without another sign-on? iOS 7 allows users to take their corporate credentials across apps, even including apps from the App Store. This reduces the need to remember and enter a number of different passwords while also keeping data secure.

Opening Up on Managed Open-In

Would you like an employee accidentally tweeting the Q4 forecast numbers? Probably not. Thanks to Managed Open-In, companies can force their employees to open email attachments in specific corporate-managed applications rather than an app of the user’s own choosing. So, even without a containerization solution to protect corporate data, enterprise information technology departments can keep business data in business-related applications on the mobile device. The business can then dictate to the user the open in options by app or user account, providing a lot of management flexibility.

Private Server Conversations With Per-App VPN

Per-App VPN allows information technology departments much more granularity in access to back-end systems. Only specific apps can gain access to a corporate network, so unmanaged or unapproved apps can never gain access to sensitive data within the enterprise. As well this restricts the ability to remove data from unapproved applications thanks to Managed Open-In. This feature greatly improves user experience and firewalls privacy so that non-business data is unable to touch the corporate network. One of the major benefits to business? Since this can quickly create barriers between SAP and Facebook, Per-app VPN makes Bring Your Own Device (BYOD) a much more realistic goal for enterprise.

Mobile Device Management Software Made Simple

iOS7 includes a new MDM protocol to streamline third-party MDM solutions. For large businesses, the need to keep hundreds or thousands of users up to date with supported versions of software can be daunting without management software. Corporate-owned devices can be automatically enrolled in an MDM solution during activation, automating much of the custom commands, fonts and wirelessly set-up managed apps.

Giving iWork Mobile to Get

Microsoft made a kingdom into an empire by licensing their end-user productivity tools. Now, just like Google Drive did, Apple is giving away iWork with Cloud capability in their latest release. This move won’t push blue chip companies to defect in droves from Microsoft’s enterprise licensing program, but for smaller businesses this strategic investment on Apple’s part could help them justify the cost of equipping Apple devices while simultaneously extending on one set of productivity tools between laptop and mobile device.

Keep the “Property” in “Intellectual Property” Through App Store Volume Purchase Program

Enterprises can now buy apps and books for their iPhone and iPad-using employees and keep the to those apps or books to transfer them to other workers. For a handful of users, this might not seem like much, but those 99 cents start to add up quickly when it comes to thousands of users or expensive B2B apps or books or other such pricey materials. Previously, companies had to go through a painful process of buying redemption codes to hand out to employees to go out and download the apps on their own.

Microlocation through Apple’s iBeacons

Apple’s iOS 7 supports low-cost transmitters that can work with an iPhone or iPad to collect location data, even if there’s no location system installed in a workplace or other environment. The system works over Bluetooth 4.0 and can be used to interact with an environment just by passing through it.

Major League Baseball has been a staunch supporter of the practical for Apple’s new tech for a few years now, and they have been off and running with how to use the iBeacon technology since last winter. So far, MLB has created an experience to populate a ballpark guides stadium specific information and which prompts users with different results based on where they are located, be it prompting the ticket bar-code at the entrance for the ticket-taker or popping up a coupon for a free soda once one smells the aroma of hot dogs.

“We’ve been looking at customizing the app based on where you are within the stadium, but GPS is notorious for not working indoors, especially when you are in a building made of steel,” MLB iOS developer Marc Abramson told Mashable. “Instead, we are incorporating Apple’s new Bluetooth and iBeacon technologies for iOS 7 and couldn’t be more excited about the potential.”

“Essentially, we want to create micro-locations within the stadiums where you can get different experiences,” Abramson said.

On the factory floor or in a busy transit center this sort of device/environment interplay could change the way the user interacts and experiences their environment.

Endless Possibilities

These eight features are just a few of the many advances that Apple has made with their revolutionary iOS7 product. Beyond what we wrote about above, there’s plenty more worth mentioning: Multi-Tasking APIs, AirDrop and PDF annotations are but a few.

The advance of mobile technology inside the enterprise will lead to major innovations for businesses and with the introduction if iOS7 large organizations have even less reason to put off extending to mobile.

We wrote months ago that organizations who move quickly but cautiously will be the ones that reap the largest long-term benefit for their business. That said, Apple has addressed many of the major concerns for caution in the competitive marketplace with the introduction of technologies like Per-App VPN and ESSO. Extremely secure yet game-changing technology is now available to the enterprise and iOS7 has done enough that smart enterprises will use these security, locational and MDM advances to propel their business forward in the next year with the largest gain at a fractional risk.

With the release of Apple’s iOS 6 the device’s maps have changed from the usage of Google maps to using Apple’s own mapping service. Fortunately, very little has changed when working with map annotations across iOS versions 5 and 6.

Today we are taking a closer look at some of the features when utilizing map annotations. A map annotation requires a latitude and longitude value to tell the map where to display the annotation. Although this is all that is required to display a pin on the map, if you want to detect click events on your map pins, then you will need to add a title to the annotation.var myannotation = Ti.Map.createAnnotation({

latitude: latitude, //coordinates

longitude: longitude, //coordinates

animate: false, //it won’t animate the pin

title: “My Title”, // will be required if you need to detect a ‘click’ event

subtitle: “My Subtitle”,

image: ‘images/my_annotation_image.png’ // can be used to replace the default pin

});

The click events are registered to the map view itself and the annotation clicked is specified in the event object. It is also possible to add subtitles and images to your annotation to customize the display of information. Another great feature is the ability to use custom images for your map pins.MyMapView.addEventListener('click', function(e){
if(e.clicksource === 'pin'){
Ti.API.info("The Pin at Latitude: " + e.annotation.latitude + " Longitude: " + e.annotation.longitude + " was clicked.");
}
}
The only caveat being that the center of the image is placed at the specified latitude/longitude values. Possible workarounds are extending the transparent area around your image so that the base of your pin is centered in the image.

Minimizing the size of your custom image also helps due to there being less error in the offset. Hopefully, an offset property will be released soon!

Changing the custom pin image of an annotation during runtime is a little trickier. In order for the appearance to be updated, the annotation must be removed and added back to the map view.

Armed with these features, creating a map-based app can be accomplished efficiently with effective results!

Overnight, iPhone devotees lined up all across the country to get their hands on the new iPhone 5 – a device being regarded as revolutionary by many due to the iOS upgrade as well as the new aspect ratio of the phone. The smart phone community is expecting major demand for the product over the next year and while the Apple continues to seek perfection in the smart phone field, the specifications of the new device have presented some challenges for developers as they consider how to properly program for the device.

While the device will catch up Apple with the aspect ratio already familiar with Android developers and will make operating system cross compatibility that much easier for ad networks and coders alike, iOS developers will now experience the greatest degree of device fragmentation. With multiple aspect ratios and product lines and just a two week head start, developers now face a dilemma. The iOS platform is more fragmented than ever and the mobile community wonders how the developer-base will respond, and with the short window since the announcements and how quickly is realistic to an application community with over 700,000 titles.

The good news for developers is that Apple will avoid major issues by allowing their developer base to target the 4-inch screen if they so choose, but only as a part of the same app binary from which they target the 3.5-inch screens. Translation, there will be no apps that only run on the iPhone 5′s screen for the present time and Apple has said that they won’t force developers to code for the four inch screen either – at least not yet.

So what happens if the developers don’t code for the four inch screen? The iPhone 5 just takes the standard-sized apps and runs them in a “letterbox” mode with small black bars along the top and bottom of the screen (or sides, if the device is horizontal) much like occurs when an iPhone app runs on the iPad. Also, even if the app isn’t using the real estate, the iOS system elements can according to TechCrunch.

One nice side effect of the letterboxing is that the iOS system elements can still use the larger screen. So, for example, when Push Notifications come in, they flip down from the top of the screen and settle perfectly above the 3.5-inch app (as opposed to on top of it).

Serendipitous though as that feature may be, the letterbox app will be remembered two years from now a design shim that many companies who entrust their apps to developers will look to get away from as fast as possible. Progress is always the mantra of the technology community, so one would expect that while there will be a cross-over period, in time most developers and their financial backers will look to target the 4 inch screens for their device.

It’s been reported by some of the teams who were able to do advance coding before the announcement of the iPhone 5 and iOS 6 that it wasn’t particularly demanding to upgrade existing design and code for the new interface. Since that time though, many publications sought out developers in the field to get their independent reactions to the changes, and while overall most of the developers contacted are enthusiastic about the added screen space, making changes, especially in elaborate apps will take thought and time.

“The introduction of a new aspect ratio is not quite as simple as Apple pictures it, in my opinion,” Marco Tabini told TheNextWeb.com in a recent article “Apps that have complex layout will have to be rethought, and in some cases there could be significant work involved,” according to Tabini.

And Tabini is exactly right, in apps which rely upon Apple UI elements (like lists or text or drawing surfaces) the change will be relatively easy, but the in ground-breaking apps with revolutionary interfaces outside the standard Apple UI major code changes to properly display the new version might be required.

In the end, the iPhone 5 and iOS 6 will propel Apple even farther forward in a market where they have been gaining confidence over Android, most notably in the emerging enterprise space acccording to a recent Appcelerator/IDC survey. The new aspect ratio will present some initial design problems for many developers while mobile consumers cross over from the traditional iPhone aspect ratio to the new one, but it’s momentum is inevitable and developers should expect to build the fragmentation contingency into future projects.

The explosive growth in recent mobile app development is the product of continued increase in
consumer demand. Mobile apps have grown to become an integrated part of everyday life because they are so practical and are just as cheap and accessible as an mp3. The aftermath of all the mobile app downloading has simply left other forms of digital entertainment behind. The apple store alone delivers over a billion apps a month and has recently reached approximately 25 billion total. As the graph below illustrates, the download statistics of apps shadow those of both iTunes and iBooks. The emerging demand for apps has undoubtedly affected those of it’s digital counterparts and its growth shows no signs of slowing down.

iTunes songs, despite not being free, have always been popular. In the last couple of years however, the rate of song downloading has leveled off. Coincidentally, the interest in downloading songs has waned at the same time mobile apps experienced a tremendous increase. The transfer of momentum signifies a new way in which we listen to our music. Loading your mp3 device full of songs was once not only essential but also a status symbol amongst our peers. Now, users are free to listen to any song they want and any where they want, thanks to mobile apps such as Spotify and Pandora. These apps are not only convenient, but they save memory space…for more apps!

Despite the new streaming services that apps provide, the music industry has no complaints. In fact, apps have helped pick up extra slack from the dying record stores. Digital performance royalties increased 17 percent just from 2010 to 2011. The RIAA quickly welcomed the new source of revenue saying that, “Access models like subscription services and Internet radio (represented by digital
performance royalties) have continued to grow both in popularity as well as in their revenue contribution to the industry”. The growth of streaming services shows that these apps are not just niche, but are actually the future of music. The choice between apps and songs isn’t necessarily mutually exclusive. But in a tight economy, a dollar will definitely go further in the app store. Apps will help you discover new music, save space on your phone, and you don’t have to micromanage your device next time you’re hosting a party. The stream of music that fits your mood, no matter where you are, is endless. That is the kind of convenience that only a mobile app can provide.

We’ve got some hot news: our buddies at Appcelerator won the GSMA Global Mobile 2012 Best Cloud Based Tech Award in Barcelona last week at the Mobile World Congress in Barcelona. The judge’s comment on the award announcement: “Quintessential cloud, write once, deploy many times drives speed and cost reductions.”

Titanium is indeed a powerful development platform that allows you to build and deploy mobile apps quickly that will work on any platform. We’re proud of Appcelerator’s win, since we can bask in the glow ourselves as Titanium developers and trainers. Our CEO, Edwin Huertas, just picked up a Master Certification in Titanium last month, and on the way back home to Richmond he stopped by Accenture-Austin to teach mobile development and best practices to their developer team.

So that’s the local mobile news, with a global spin. Here are some other trends we’re watching:

iPad 3 launch

Apple is launching the iPad 3 this week (if they want to take advantage of SXSW crowd hype) or next week. We’ll be watching closely to see what changes are really in the tablet after all the pre-launch speculation is either proven or myth-busted. One big question: will it include LTE? GigaOm’s Kevin Fitchard has a great post on what LTE’s inclusion, or exclusion, would mean for the mobile space. Stay tuned for that answer.

Augmented reality for navigation

Texting while driving is a bad idea. There are, however, a few apps in development that use augmented reality to help drivers navigate traffic by using the camera lens on their smartphone. One in particular got a lot of attention at Mobile World Congress last month: iOnRoad, an Android app developed by an Israeli company who envisions the technology being integrated into existing vehicle navigation systems.

Are you looking to build a mobile business?

That’s one trend that will continue to grow for the foreseeable future, as more people across the globe get connected via mobile devices even when terrestrial connections aren’t available. If you need help exploring the idea of making your business, your idea, or your cause mobile, we’ve got expertise and the tech savvy to make it happen. And the training programs to help you build your own mobile developer team.

No industry has more hype attached to it than tech. Sure, the entertainment industry is known as hype-a-palooza, but they rely on technology to both create and hype their products, so we’ll stick with tech as the most hyped vertical on the planet.

How does someone figure out what’s really worth it, and what’s the latest shiny object that’s really just a tin can?

Great minds spend great big chunks of time and money thinking about this very question. Gartner releases an annual Hype Cycle report that looks at tech trends and predicts what their adoption and long tail might be.

Their predictions for 2012 are in the chart below. You can see that most of where we operate here at Shockoe is already on the Slope of Enlightenment.

Here are our Three Tech Trends of Truth that rise above the hype-noise:

#1: Tech that connects emotionally

A great example of this is apps that deal with food. Our own iYummyapp takes advantage of this by letting users share their favorite food across their entire social sphere. Angry Birds is another app that uses emotion – it lets users kill mustachioed pigs to blow off some steam. Instagram has an emotional component, too, in that images can have a significant emotional impact. Technology is a human tool, and humans are emotional creatures. Tech that touches human emotion will trend … forever.

#2: Education 2.0

Tech that helps students self-direct learning is coming on strong, and will continue to do so. We’re educators here at Shockoe, and we know from our experience teaching mobile development that learning face-to-face is the best way to acquire some skill-sets. However, there is plenty of room for self-directed education in primary, secondary and university programs, and that idea is starting to gain traction. Legendary tech investor Vinod Khosla posted some of his thoughts on this on Techcrunch last month. A favorite quote:

according to research by the Joan Ganz Cooney Center, 60 percent of the top-selling iPhone apps on the education store are made for toddlers and preschoolers. Do we expect these children to relinquish and forget their app- and game-centered development after they get to first grade? This is completely unreasonable! And for me it is easy to envision how we can make education more engaging with these approaches, hence enhancing learning at all levels be it kindergarten or medical school.

#3: Near Field Communication will change money forever

We talked about this two weeks ago in our post on mobile trends. Mobile payment tech turned Africa into a mobile-payments case study, spring-boarding off the M-Pesa launch in 2007 by wireless provider Safaricom. Now a number of banks in the US and Europe are giving NFC-enabled mobile payments and banking a test drive. The early adopters among banks will be the winners in this race. Those in late will become the also-rans, losing increasingly-mobile customers in all geographic areas to the more mobile-friendly financial institutions.