5 Secrets To Mobile App Subscriptions

Jeremy Callahan - Mobile App Subscriptions

Developing an App that offers subscriptions is no easy task. Architecting a subscription service is complex and full of design considerations. This post will elaborate on the areas you need to figure out up front before going down that path.

The App I created is a hybrid architecture which means it uses the one code base for an iTunes and Google Play App. If you are not familiar with App coding it’s beyond annoying… You have to program once in Android and again in iOS. Most Apps/companies have a native setup with two separate code bases for iOS and Android.

Regardless of which architecture you use, implementing a subscription service is complex and full of design considerations. This post will elaborate on the areas you need to figure out up front before going down that path.

I mentioned above that I used one code base. The code/language I used is JavaScript with Phonegap plugins. Even though there is a standard programming language I still had to architect a solution for iOS and Android. Why you ask… well because Apple makes you use their In-App purchase framework and Google doesn’t care what you use.

Seriously, Google has zero care how you implement a payment processor. Having said that I have heard they now have a subscription payment option. However, this was not an option when I began our architecture and development.

Therefore for iOS we used the In-App subscription services that Apple recommends and for Android we used Stripe. We could have used the same Stripe code for both iOS and Android but Apple will not approve any App that doesn’t use In-App purchases. This is as annoying as a new Macbook that doesn’t have a USB port!

On both platforms our pricing is $9.99 a month with a 7 day free trial or $99.99 per year with a 7 day free trial. All the pricing and free trials are easy enough to setup within either iTunes Connect or Stripe. Up to this point we are in the calm water… but now it’s time for the heavy lifting.

Here are the five main consideration areas:

The Initial Payment
Checking Active Subscriptions
Renewing – Without offering another 7-day free trial
Reporting – Who is in trial vs. subscribed vs. cancelled, etc.

The Initial Payments

Apple – This isn’t overly difficult. When you initially load the App you make a service call to iTunes storekit.load method and that will return all the active items in your store. In our case for example it returns four subscription types: Monthly w/ Trial, Monthly, Annual w/ Trial and Annual.

I created a monthly and annual without trial in case a user reactivates a subscription so they do not get the free trial more than once. I was told after development that Apple actually checks this automatically on their end to avoid this situation. But I had already programmed it on my own and cannot confirm that is actually true. If anyone knows are sure please add it to the comments on this article.

Once the store is loaded in the App I just created buttons with the pricing options for the user to choose. If the user taps an offer, I send an buy request to iTunes and Apple initiates and completes the transaction from the users phone/iTunes account.

Android / Stipe – On this path I use the same page for Apple with monthly and annual buttons. When the App initially loads I check the phone type (iPhone or Android). So when Android users tap a selection they are then taken to a payment screen to enter their credit card information.

Now pay attention… Stripe is super simple to implement on the web but not here. That’s because on the web when you click “Pay with Stripe” a pop-up opens and then the payment is handled by Stripe. Essentially you do not have to do anything except send the payment to Stripe and they process it and send you a response. However, in an App you cannot “pop-up” a new window so the basic implementation will not work.

That’s no big deal for “The App Man” though… I just created a JavaScript Ajax call with the Stripe API and then used their PHP API to create a web service to process the payment and return a success or failure response. Sorry to geek out on you but in short the Stripe API allows customization and that’s what I did. Once Stripe works its magic it gives me transaction ID’s that I store with each users account.

Checking Active Subscriptions

As I mentioned before when the App initially loads we have a device check to determine if it is an iPhone or Android. We will now use this to call either iTunes or Stripe and get the current status of the subscription. Every time the user freshly loads the App we need to run a check to see if they are active. When I say “Freshly Loads” I mean that if the App has not been used in over four hours we are going to run this check.

Apple – This is where Apple starts to get more difficult. To check a subscription status you have to do the following. First, when the storekit.load function executes it calls Apple and gets the subscription products (monthly, annual). However, it also looks for and if found returns a value for: sk_receiptForProduct. This is a transaction ID for the subscription that is related to the users phone/iTunes account. Now, if the user has been on a monthly subscription for 12 months guess what… it will return 12 transaction ID’s.

The transaction ID is a encrypted string about 2000 characters long that you then have to encode and send to Apple for validation. Apple will send you back a status ID of the transaction.

Here is what you will run into while developing and testing. In the Apple sandbox environment Apple will renew a monthly subscription every 5 minutes to simulate a month has passed. After six renewals the account will be expire. In theory this is great but in actuality it sucks.

The reason it sucks is because now you have 6 transaction ID’s. Every time you build the App moving forward those 6 transactions stay with your phone. Apple didn’t bother to create anyway to refresh or clear past transactions. So on the second build you will have 12, then 18… As you can see the more you build and test the more calls to the receipt validation service you have to call.

In my case my App wouldn’t load because I was making 40 calls to the receipt validation service to see if my subscription was active. But here is what I discovered through trial and error. Every single transaction ID, although a different sting, returns the same subscription status. So programmatically I just store the final transaction ID and then send that one time for validation.

If the transaction ID is valid the user is send to the dashboard and if not we send them to a renew page.

Android / Stripe – This implementation was fairly easy to develop. To do this I just take the users transaction ID from their account an call a Strip PHP service that I wrote. This returns all the data associated with their subscription. If they are active I send them to the dashboard and if they have expired they go to the renew page.


Be sure to make the terms of your subscription clear and upfront – don’t be an A-hole! Not to mention that Apple will not approve your App if you are being deceptive.

Apple – In order for a user to cancel their subscription they have to go into their iPhone settings, then iTunes and cancel their subscription. In the test environment there is no way to actually do this as of this writing other than waiting for the subscription to expire as stated earlier. I guess we just assume if Apple approves our App it will work.

Android / Stripe – Again the Stripe API allows us to create our own cancel process. Within the App we created a section that shows the subscription status, free trial days remaining and next bill date. We then created a custom PHP service that will cancel the user’s account. The only rub here is that if the user cancels we still need to give them access to the App through the remainder of the month/year they paid for. Stripe has accounted for this within their API so it’s really just a matter of showing the user a nice message like: “Your account has been cancelled and you will still have access to the App until 10/20/20”. Once the expiration date is reached we will pick this up with the subscription status check we mentioned earlier in consideration 2.

Renewing Subscriptions

Apple – Pretty straightforward here… Apple auto renews every 30 days. Upon login we check the transaction ID and if it is expired we send them to an App page with our renew offers.

Android / Stripe – Upon login we check the Stripe transaction ID with and if it is expired and past the “good until” date we route them to the renew page. So if their user account has a transaction ID they will never see the free trial again.


Apple – This is where Apple has really dropped the ball. There is absolutely no way to determine how many of your accounts are in free trial vs. active vs. expired from a reporting standpoint. Right now there are two options I have found. Either build your own system or Revenue Cat. Revenue Cat is a startup that can handle this process and has reporting on these metrics. The only issue is that they currently do not work with hybrid Apps. I have been speaking with their CEO and they are expanding their API to accommodate this and many other new features. Needless to say I can’t wait until this is ready.

I have also spoken with several other companies that have created their own tracking and all have assured me that it is a huge undertaking. So beware because your marketing and business teams are going to want to know this data. Apple is taking 30% of each subscription you sell but providing no reporting / metrics at this time.

Android / Stipe – No problems and no issues here. The Stripe interface is mature and well designed to see the status of accounts by many different groupings.

Wrapping Up

Subscriptions within Apps are very popular in concept and Apple is making a huge push for Apps to include them in their offerings. Google Play is also expanding out their platform to support subscriptions and pay for usage Apps. The main issue for a product developer or architect is defining how to accommodate and develop a solution for iOS and Android. From a marketing and usage standpoint we need to also consider reporting.

I started with a solid plan from the beginning and halfway through had to change course several times to get to a final solution. Such is the life of an early adopter. I wanted to share my experience with you so that you can learn what to account for in your App architecture. You likely have a completely different code base and design but the overall considerations will still need to be addressed.

If you need help, please do not hesitate to call me.

19: How to Hire and Manage Developers

It’s critical that you know how to hire the right developers and what to look out for when adding new members to your team. Today I’m breaking down everything you need to know about coders, the differences between good and bad developers and equipping you with all the right questions to ask when interviewing candidates. First, let’s start with some basic red flags to spot “Bad” Developers:

1. Insecurity. An insecure developer is usually a senior programmer, who’s developed a system that only they can understand or is “too hard to explain” to other employees. Their intention is to make it impossible for the program to function without them. They create a system of inwardness, instead of developing something teachable and more useful to the company. They try to create job stability by developing a complicated operating system. This stems from insecurity and is toxic to the work environment.

2. A Silo. This is the person who makes themselves so invaluable to the company, they cannot be replaced. When someone develops an operating system only they can decode, they are a bad developer. A silo is also a person who develops out of insecurity.

3. Complicated Build Environments. How long does it take your organization to get somebody up to coding? If you hire someone and it takes them more than one day to get up them up to speed on your programming system, you’ve got a bad architect on your team. It shouldn’t be more complicated than a full workday to figure out the system. Only a bad developer would program a system that takes a week to decode. Make sure your operating system is neat and not outrageously complicated to translate.

4. There are too many branches. When there are too many branches to code and merge, it makes the system far too elaborate and can take up to a week to translate and run smoothly. This stems from the functionality of your build environments and can lead to unnecessarily laborious work. Be aware of developers who overcomplicate systems and codes that slow down development rather than contribute a teachable, effective system for greater productivity.

Bad developers intentionally makes their work unteachable. If you’re worried about someone else taking your job, you’re already gone. You should be focusing on how to contribute to your company to make it a greater system as a whole. The more people you can help and teach and learn from, the greater an asset you are to the organization.

Enough with the negativity! Let’s jump into some positive characteristics to look for in a “Good” Developer:

1. They finish no matter what! A bad developer might make an excuse, but if you’re a good developer you’re going to get it done. Always hire someone with a high level of integrity. Those are the developers that will always finish the job.

2. A great developer can work within any code base. Unlike an insecure developer who may spend extra time re-coding a system their own way, they will be transparent about any problematic systems and offer a teachable solution.

3. They are neat. When you look a their code, it’s clean and neat. No extra spaces or unnecessary symbols that overcomplicate codes to be unlearnable, (as an insecure developer would do). It’s a simple, obvious thing that makes an enormous difference.

4. They are accountable. They take responsibility for their projects, any issues they encounter and always come through with an alternative solution or offer an updated reasonable deadline if they need more time. They don’t run excuses or keep details vague. They stay accountable for their work and investment in the company.

5. A good developer is simple in their work. They create the most simple solution in the least amount of time. This makes their code easy to teach and utilize on a larger scale.

As you hire developers, it’s very important you chose someone who knows how to demo. It is an art form! A skilled demo is articulate and concise. They don’t get flustered explain a system or release too much information that could potentially jeopardize the company in any way. And perhaps most importantly, they perform well under pressure. Coders are under an intense amount of pressure, time constraints and detail oriented work. It’s important to hire developers that thrive under pressure and are meticulous in their field. These are the kinds of developers you can manage well.

Thanks for tuning in today! I hope these tips help you navigate your way to a more successful, high functioning team. If you have any other questions, mobile app, development inquires, I’m here for you! See you next week! http://www.jeremycallahan.com/

15: How Much Does It Cost To Build Your App

In this episode, I break down how much it costs to build a mobile app the same way I break it down for my clients. I’m going to show you exactly how to do it so you can estimate how much your app is going to cost to build.

07: Interview with Steve Young

Today I’m bringing you Steve Young.  The creator of App Masters, and a strategically innovative entrepreneur. From Podcasts to Youtube videos, and Online Course, he collaborates with experts in the App industry. His success spans far and wide, and today, we decode just how he does it all!

A Day In The Life of The AppMan

Journey with me from when I awake, go to work, have an panic attack, code Apps and show you what a day in my life looks like. I always post filtered photos and videos on the Internet but today I show you what my life is really like from start to finish. It just so happens that I had a full anxiety attack mid-day and decided to post it so you can see that I have struggles just like everyone else.

Hybrid vs. Native – How to choose the correct App development platform

The most important architectural decision on any App project is choosing between Native or Hybrid. In this video I cover the major points of consideration when choosing a mobile development architecture. Native applications are Apps in the native to the device (iPhone or Android). This means that iPhones are programmed in Swift/Object C and that Android are programmed in Java. Thus you have to have two development teams to program your App.

Hybrid apps are developed using HTML, CSS and Javascript, and then wrapped in a native application using platforms like Cordova. With this approach you can have one set of code that runs on both iOS and Android.

There are tradeoffs to each approach that need to be considered when architecting your App.

Why I Became An App & Web Developer

In 1999 I took a weekend trip to Las Vegas to have some fun and play golf. Back then, the only way to find a golf course was from the hotel concierge, phone book or the best case was a booklet of all the courses in an area.

Vegas has no shortage of golf courses and from all the sources I had I realize every course was essentially charging the same price to play. So I randomly chose Desert Pines and it was horrible decision. It was target golf and I barely got hit my driver all day.

I thought there had to be a better way so I conceived the idea for Course Cam. If there was a way to take a video tours of golf courses in an area before traveling golfers could pick courses that suit their game. Just like those fancy fly-over videos you see when watching golf on television.

Since I had just bought a new Dell computer and lived paycheck-to-paycheck I figured that I would figure out how to build the website, make videos and put them onto the Internet. Keep in mind it was 1999 and at that point no one was putting videos on the Internet.

Back then there was anyone to call for help. Finding someone that had built a website was impossible. But I had a desire to make my idea a reality so I was at Borders (remember bookstores) everyday reading through every book because I had no idea where or how to start. I forgot to mention that I majored in Political Science in college so I was starting at zero.

Learning to program is not easy if you have an instructor let alone teaching yourself. Luckily for me I had three things going for me. First, I have incredible discipline to follow through on goals I set. Second since I was a kid I was always building things like remote controlled cars and skateboard ramps. And finally I knew what I was building. This meant I did not have to do mundane tutorials. If what I was reading didn’t apply I quickly moved on.

I bought a used video camera and went out and started filming course. Then I had to learn to edit the videos and add music. Options were limited but I somehow found a way to make and edit the videos. That was actually easy compared to how in the hell I was going to get them onto the web. Actually, I had to first figure out just how to get them onto my computer. I had to buy a firewire and a PCI card… long story short it wasn’t easy.

Eventually I had a website with 4 different course videos. On one side of the screen was the video and on the other I had a drawing of the hole. I had marker in the video that would change out each hole slide. I love telling that story because I was one of the first people to put video on the Internet.

I had and idea, a burning desire and that is WHY I became a software engineer. Course Cam was not a success financially but it made me realize that I absolutely love to ideas into reality. Engineering is extremely hard work… but helping companies turn their ideas into products is very rewarding work.

Contact Me!

Jeremy Callahan The App Man


Twitter: @jeremycallahan

7 Reasons I’m Attending 10x Growth Conference

10x Growth Conference Jeremy Callahan

The 10x Growth Conference is March 17 – 19 in Hollywood Florida. If you are an entrepreneur looking to take your business to the next level this is a must attend event.

As my readers know I am always striving to motivate others. The most important aspect of motivating is staying motivated personally. To stay motivated I employ a number of activities like reading, writing blogs, masterminding and of course, attending conferences. And that is why I’m pumped to be attending the 10x Growth Conference in March.

Attending conferences is a huge time and financial commitment. Most people decide to go but never take the important step of defining what their goals are by attending.

My goal in writing this blog is to let you know exactly why I am attending because I want to meet as many people as possible before I get to Miami. So please reach out to me by phone, text, email, smoke signals and let’s get the conversation going before the event.

Here are the reasons I’m attending and what I will accomplish by going.

1. To Meet Grant Cardone
2. Increase My Performance
3. Meet With Success – Speakers
4. Like-Minded Networking
5. Level Up
6. Enhance My Creativity
7. Growth Hacking

1. Meeting Grant Cardone

The creator of the 10x Growth Conference is Grant Cardone. Simply put, Grant has no time for excuses and anything less than maximum effort. If you are not where you want to be in life it your fault and you need to step up and quit making excuses and being negative. He is also a master motivator and works tirelessly towards his goals.

2. Increasing My Performance

I have three businesses running successfully. But lately I’ve been feeling that I’m not operating at the same level I was 13 months ago. Being successful requires you to fairly and accurately assess yourself. And I know that I’m not meeting my personal standard. Every time in the past I have attended a personal development conference I have came out with increased energy, focus and inspiration that has carried me for months after the event.

3. Meeting With Success

The speaker line up at this event is incredible: Damon John, Les Brown and Frank Kern to name a few. My favorite part about hearing their journeys is when they tell about all the hard times they have faced and how they broke through in the face of complete failure.

4. Like-Minded Networking

Let’s face it… Networking sucks! But it sucks a lot less when you are networking with like-minded people. I know for an absolute fact that the people attending this conference are hungry, have goals and they will stop at nothing to make them come true. I had a choice between two events to attend and I chose this event specifically because of the attendees.

5. Leveling Up

Because everyone attending this event is a goal driven success-seeking person I know that by merely being there I will “Level Up” in connections, ideas, creativity and friendships. In traditional business networking events it’s a crapshoot on whom in the room is the person you should be talking to. This event in itself will remove that barrier.

6. Enhancing My Creativity

I have plenty of ideas and everything I do is creative in nature (software development). However, attending events with like-minded people somehow seems to bring that creativity to a higher level. The conference is called 10x Growth Conference for a reason! Because everyone is there to 10x their goals, income, life… it’s a by-product that the creative energy in the room will off the charts. So I am super pumped to come

7. Growth Hacking

How do you get everyone at a conference to know who you are? I mean I’m only an attendee on a standard ticket. So how do I get every one to know that I am the recognized leader in mobile App development? Simple… GIVE, GIVE, GIVE!

In short I am creating a 10x Conference App. In addition to that I will create a post event video, blog and infographic that curates all the attendees content from Facebook, Instagram and Twitter. I am still working through the details and will be blogging in the following weeks prior to the conference to exactly what you can expect.

Contact Me!

Jeremy Callahan The App Man


Twitter: @jeremycallahan

Jeremy Callahan is the , Expert Mobile App Developer, App Marketer, Front End Engineer, Motivator who gets shit done and Inspires others!

How to Start and Validate A Business (30 Day Business Challenge)

January 8th, 2017

Last year a guy on my team asked me how do you start a business? It was a fairly broad question and my first response was… You just start! But it is an interesting question and to answer it for you I am going to start a business today and see if it will gain any traction in the next 30 days.

Here is what I am committing to… 30 days, $500 investment and I will only be working on it about 1-2 hours per day. The goal is to get 5 customers and see if the advertising to sales ratio is a winner.

The Business Idea

In November I updated a friends painting website. He is a contractor so I added a booking utility that allows his site visitors to book estimates online. Since we added it, he has had 11 people book estimates via the site.

Its simple, the pick a day/time and then it adds the appointment to his calendar and emails both parties, reminders, etc. It’s a sweet little tool from a third party that is quick and easy to setup.

So my 30 Business is simple. I will add this same tool to websites for $99. Actually the price point is not set but I’m going to begin at $99 and assess the results.

Since I am a developer I created a landing page for the product with all the details of how it works. I added a 3 minute Youtube video as well. To setup the landing page with the video I put in about 4 hours of work. Click the image below to see the landing page I built.

How to start an online business in 30 days

A special thanks to Ryan Robinson @ https://www.ryrob.com/validate-business-idea/ Two days after I started this Ryan randomly followed me on Twitter. I clicked on his page and saw he was blogging about the same thing I was doing. So that inspired me to post about my progress on my 30-Day challenge.

I’ve started a lot of businesses and there is no set formula. I do know that I will make mistakes and learn things along the way.  My initial plan is to run Facebook ads to anyone who listed their occupation as a painter or home decorator. I am running $20 per day.  I’ll update this post in a few days with my progress

I’m happy you are reading this and I hope it inspires you to take action towards your ideas. Please share, follow, comment and reach out to me if you need any help or inspiration!


January 13th 2017

As I mentioned above I would make mistakes and it happened two days in.

To start I decided to run Facebook Ads. I created an initial test group for anyone with in the USA with a job title of either Painters (house) or Decorators. Since this was the initial test I decide to run the ads for 5 days at $20 per day and see what the results were.

It took about 2 hours to setup the Ad’s but that was over the entire day because Facebook kept rejecting my Ad. They were rejecting it because the URL I entered was missing the .com portion of the URL. I finally discovered the error and after a quick change my ad’s were running.

And that is where the mistake happened… Apparently the .com didn’t save and my ad’s ran for a day and a half with a bad URL. When I checked Google Analytics mid-day I had zero clicks. So I had to contact their support and get a credit for that.   But I was out a 1.5 days of seeing the results.

Here is the data on the ads

Screen Shot 2017-01-13 at 1.33.42 AM

The bad news is that out of the 307 clicks I got ZERO sales. I started the price at $99 and then moved it down to $29.99 after 150 clicks.

More of the Same Produces More of the Same!

Since the FB ads produced no sales I turned them of and decided to take a new approach. And that approach is email. The truth is that same day I started the ads I found a site that sells emails of painters. So on a whim I bought a list of 5000 for $79.99.

And when I say whim I literally mean a whim… I started thinking after the fact about the quality of the list and that I may have dove in too fast on that one. One of my better qualities is that I make decisions fast and stick to them.

I am going to begin sending emails over the next 4 to 5 days in groups of 200. I will vary the subjects, content, links, etc. to see what get higher opens and clicks. While that is running I am also creating six emails that will send as an auto responder. I will start running the auto responder campaign next week.

To recap: $187.70 spent of $500, Zero sales

Contact Me!

Jeremy Callahan The App Man


Twitter: @jeremycallahan

Jeremy Callahan is the , Expert Mobile App Developer, App Marketer, Front End Engineer, Motivator who gets shit done and Inspires others!

How To Test Mobile Websites With Google Chrome

Here is a quick video on how to test how your mobile site or App looks by using a Chrome web inspector web tools.  This will simulate iPads, iPhones, Android Phones and it will also simulate network speed.  For example, you could test how your hybrid App will load on a Samsung Galaxy on a 3G network.

Contact Me!



Twitter: @jeremycallahan

The Unconventional Guide to App Building – Part 1

Step 1 – The Foundation

The steps to App building are similar to building a home. If you were building a home the first thing you’d consider is how much home can I build with my budget. In the startup world, we call this the MVP

Minimum Viable Product: So when we talk about product development, I want you to think what are the minimum features that are needed to get this to market so we can get user feedback. Our goal is to get this in front of people and find out how well it works. Then we can make additions and adjustments in the next version.

There are two parts to the foundation

One is the Name, logo, design and URL. At this point I’m sure you at least have a name in mind. Make sure to search the iStore and Android Marketplace to verify that the name is available. If you do not find an app with that name, it is available. For the web URL you can go to Godaddy and run a search.

To reserve the name you will need to create a developer account in the iStore and Android market place and register a new App with that name. This does not mean you have to publish an App. It just means that you have created the initial App landing page. This is the page people see when they search for you in iTunes. Once you have the App registered you have 180 days to publish your App or the name will be lost.

Choosing a Keyword Friendly Name

Names in iTunes can be 255 characters and making the most of this is important for keyword purposes. For instance your app might be to find dog walkers in your neighborhood and called: Dog Walkers

But you have 255 characters so a better name would be: Dog Walkers – Find licensed pet sitters, walkers and trainers in your neighborhood. Now when people search for ‘pet sitters’ your App comes up in the search.

The second step to the foundation is design!

The first step is to create a style guide. The style guide is simply a logo, headings, colors, buttons, icons, etc that will be in the App. You can do a Google image search for “Mobile App Style Guide” and see examples of what you are looking to build. It is similar to the image below:

How to Build Apps Style Guide

To create the guide I recommend going on Fivrr and searching for “App Style Guides”. This will return a list of people who will create them for you for as little as $5.

Fivrr is a site where people work for $5 per project. Well actually $5 is just the starting point. For a decent style guide you are looking at around $30 – $50 per request. Fivrr is great for design because you can get several designs for a small investment

The best way to use Fivrr is to find three to four people and then purchase their services. Once you have the results you can pick and choose elements you like and combine those into a final style guide.

People always seem to get paranoid here thinking the designers will steal their idea. If you fall into that category I’d suggest working with us or a designer you feel you can trust. Use a designer you know or someone who you can meet with in person before they start working.

Keep in mind that the reason for the style guide is so you have something to hand off to the developers you hire. This guide will be used for the App and your website (assuming you also need a website).

And it is important that you have a brand identity that you can use from business cards, email templates or anything else with your brand on it. So take some action right now and find a good designer and have them create a style guide for you.

My final thought on design is a visualization exercise. Once you have your style guide I want you to print it out in high quality and as large as possible. Then pin that on your office or bedroom wall… Somewhere you will see it everyday

This will get emotionally involved in your App and seeing a design daily will keep you moving towards your goal!

The App Man Jeremy Callahan


Twitter: @jeremycallahan

Jeremy Callahan is a Mobile Commerce Expert, App Developer and Founder at Flip Shop Marketing

BS Facts About Hybrid or Native Apps Everyone Thinks Are True

Let me ask you a question… Of all the Apps right now on your phone, how many do nothing more than a regular website?  That right there is the answer to any debate on whether you should make your App with Hybrid or Native technologies. If you are really just making a website for a phone then you are wasting your time and money if you do not go hybrid.

Native vs. Hybrid Mobile Apps


For definition purposes hybrid is programmed in HTML/CSS/JavaScript and using one code base that you can publish into both App stores. Native means we have to program it separately for iOS and Android but we will have better access to the phone features like the accelerometer.

I will also tell you that I have programmed both hybrid and native Apps since 2011. The majority of the Apps are hybrid because I always take the smartest approach, which usually is based on what is the easiest to build and maintain. Plus as I stated before, 90% of the Apps on your phone are just glorified websites.

The Performance Lag. This is worth considering. Hybrid essentially takes the code and runs it inside a browser on your phone. Even though it looks like and App, it is running in a browser. Thus, if you need to call a core phone function (like geolocation, compass, accelerometer) that will cause a lag. Now this lag is a millisecond. Not a big deal if you are showing a map of restaurant locations near a person. But this can be a huge factor if you are Uber and showing where a car is in real time on a map.

The Facebook Effect. Zuckerberg isn’t any smarter than you or me. He is just a guy that hit a grand slam in his first at bat. In the early days of FB they went with a hybrid mobile approach. But they had to reverse course from a hybrid because in 2011 HTML5 had no way of scrolling content on a phone effectively. Since scrolling is a major part of FB they scrapped their approach and went native. Mark then made a few comments that HTML5 wasn’t ready. Group think prevailed and any CTO who made a mobile decision had to choose native because “that’s what Facebook is doing”.

A Real Life Example. I am leading a team right now rebuilding a website, iPhone and Android App for one of the largest corporations in the world (sorry can’t disclose but you’ve saw/used their products today). We have one backend team that is handling all the web service calls and then three separate teams for Web, iPhone and Android. All three teams are rebuilding the registration, login and shopping pages and calling the same backend web services. We get into situations where the Android team has something working and then the web team requests a backend change that breaks their code.

In addition to that, the user experience is different across devices. Hence, we have a design team that makes comps for all three environments. But all three sites do exactly the same thing! There is absolutely no reason (programmatically) that we should not be on a hybrid platform. All three are just glorified websites.

I get the inner workings of how decisions are made. And selling people on one code base being used for three platforms seems like pie in the sky type of stuff. But its not! You are all being sold a bullshit concept that you have to have three separate code bases for the same thing. Let that sink in…

If you are a developer, project manager, CTO… whatever. You need to wake up right now and challenge the status quo. Ask a simple question “Is our App just a glorified website”? If the answer is “Yes” then choosing anything other than hybrid is a major mistake.

Jeremy Callahan The App Man

Jeremy Callahan



Twitter @jeremycallahan

5 Ideas for A Kick-Ass Mobile App

Retailers and brands are putting too much importance on their return on investment and not enough on their Apps importance on the shoppers journey and overall brand experience. If you truly want a kick-ass mobile App check out these 5 ideas to put you above the competition.

  1. Reward Loyalty! Do you know who your most loyal customers are? And if so, how are you rewarding them for engaging through your App? Here are two ideas…Sears just rolled out a rewards program where in-store shoppers to find “Pets” similar to Pokémon Go. They have teamed up with “The Life of Pets” movie and made an in-store game where users are rewarded for finding and capturing “pets” while in the store.

    Flip Shop Marketing has an App that allows retailers to put in product image designs of concept products. The idea is that if you have 1000’s of potential products like Shoes or dresses you can reward your customers from Swiping through and liking or passing on product designs. Brands can then offer a discount or cash reward for customers who swipe through 100, 200, 300… products. Not only are user rewarded but brands can use this data to determine what their existing customers actually want and which designs to invest in.

  1. Personalization! Make no mistake about it personalization is here to stay. Eventually everyone will have personalized education and a diet specific to their DNA structure. Imagine how much longer we will all live and intelligent we will be!

    Having said all that… you likely do not have a diet or education brand. But regardless you need to know every action a user takes on your website and App. Every single product they looked at, add to their cart, bought or did not buy. Are you tracking this on an individual basis? Are you linking users from your website to your App via their email? You cannot have personalization without data. So first things first tighten up your data gathering. And if you have data start thinking of how you can leverage it in your App!

  1. Image Size and Quality! Gone are the days of small crappy images people. List views or even Pinterest style layouts are not taking advantage of the entire screen space. If there is an image on your site it should be the entire width and height of the device. Plus in every survey under the sun related to mobile, user want bigger images. Weather its news, products, event venues, people want a large visual image. Here is an entire article if you don’t believe me: Size Does Matter!


  1. No Top Navigation! That’s right you heard me… you do not need a banner across the top of your app with the App name and navigation. It’s a complete waste of space. Does Snap Chat have a top navigation bar? Nope, and you shouldn’t either. Users are expecting things to happen when they swipe in an App. For instance, Swiping down on Snap Chat revels the settings menu.


  1. Fast Purchasing! If you have an “Add to Cart” button on your App you suck! You are copying everyone else and using a method that was designed for desktop websites. This is mobile baby and if you use the term “Path to Purchase” you are setting the industry back. There is no “path”… the user should click “Buy Now” and be taken to a confirmation screen.

    Make no mistake about it, the reason Uber is so successful is that you never have to pay when you get to your location. Every time you take an Uber it’s like a free ride (until you get an email or bank statement). And this is exactly how buying anything on mobile should be. If you have the users Credit Card make the sale now!

How Much Does It Cost to Build An App?

This is by far the number one question I get asked from clients, friends and people I meet at networking events.  So I threw up a quick video on how you can estimate how much it will cost to develop your idea into an App.  Nice photo of me as well… It looks like I am the Michael Jordan of programming.  Or I have a fat lip.  It’s always important to laugh!

Contact Me!

Jeremy Callahan The App Man


Twitter: @jeremycallahan

Jeremy Callahan is a Mobile Commerce Expert, App Developer and Founder at Flip Shop Marketing

How Many Hours a Day Do You Code?

I can bet you that the average software engineer actually codes less than 5 hours per day.

And quite honestly I think that is a high number. I’ve been a developer for 20 years at fortune 500 companies, startups and everything in between. I’ve have at least 15 different jobs and on top of that worked on over 40 “side” projects. So I’m an authority on how much people actually work. And by work I mean writing code and smashing bugs. Not planning, talking, playing Ping-Pong, going to lunch, etc.Jeremy Callahan

Developers will have you believe that coding is hard. It really isn’t. Now if you code for 10-12 hours a day for two straight years that is hard work. And since I have done that for the past two years I can tell you that I am in the 1% of developers that put that effort out.

Why? Because I started my own business (actually 3) and don’t ride a corporate bus to work, have free lunch and dry cleaning. I don’t have time for playing games; I have multiple clients that are expecting results. I’m on 100% commission, I’m also creating personal App’s that may or may not make money. My families well being is on the line every minute of every day.

Any company that is giving all those perks out is getting about 5 hours a day out of their developers. And worse than that you are creating SOFT people. You may think that people are working 10 hours a day. They Aren’t! They are screwing around playing Ping-Pong or trying to learn some new JavaScript framework (if you could see me right now I am making a tossing off hand motion).

I can also tell you that in all the years I have worked (and I’ve worked at the places with perks) developers as a whole don’t produce much. Professionals produce and your team is likely one pro and x amount of amateurs.

So I put it to you right here in black and white… Are you a professional or amateur? I’m going to write an entire blog on the subject of professional vs. amateur programmers in the near future so there is a clear understanding by the development community as to what it take to be a Pro.

And trust me when I tell you that it will have nothing to do with JavaScript frameworks, foosball, college degrees or corporate buses.

If you have free time in your development job go get a second job, side project or create something for you company that will make the company grow. Look for opportunities that produce income… make an opportunity. Do something! be somebody! If you are a “corporate fat cat” you kidding yourself… You are an Amateur.

Jeremy Callahan The App Man

Contact Me!


Twitter: @jeremycallahan

Jeremy Callahan is a Mobile Commerce Expert, App Developer and Founder at Flip Shop Marketing

How to Build Mobile Apps

One of the top questions I get is how to get started in App development. The answer I was giving until today was “it depends”.   And by “depends” I meant are you a developer or someone who has never programmed.

But now I can 100% tell you where to get started thanks to an awesome new tool I discovered yesterday.

It’s called Ionic Creator and it is an online drag-n-drop utility that exports code you can either code up or pass onto your developer. Here is the link. And even better you can either text the code to your phone to see it in action or they have a mobile App that you can review your App on so you can see how it would look as an App.

Jeremy Callahan - How to build Apps

Jeremy Callahan – How to build Apps

It took me about 5 minutes to learn. You can create pages, drag in buttons, lists and then link all the pages together. The styling is pretty generic on the free accounts (I’ve only used the free so far) but it gets your idea into an actual working version.


If you have an idea for an App open a free account today and put your idea into action. Start building out the pages and linking them together. Then in the top right corner there is a “Share” icon. Click that and you will have URL that you can share with developers. Then go Upwork and post a job to get bids from developers to build out your App.

Ionic Creator also creates some base line code. You can export that code as the project base. Email me if you need more help because I can go into this pretty deep. But you need to take some action and create your prototype first.


There are three export options. Two are free and two are paid.

Command Line Interface (FREE): This is a few command line calls that will create a project for you.

Export Zip File (FREE): What the tool spits out is HTML/CSS/JS in an Angular project. The project zip file contains everything you need to start a PhoneGap project. You could easily take this code and dump it into a GIT repository and then use PhoneGap Build if you know that process. I’m an expert at PhoneGap Build so email me if you want to go this route.

The final option is “Creator Mobile App” (PAID): I haven’t paid yet so I cannot tell you much other than I think it packages everything up and give you a .apk (Android) and .ipa (iTunes) file that you can publish in the App stores.

Wrapping Up

There are a number of other things you get with paid accounts like the ability to have multiple users. This is quite powerful because you could literally have your marketing team creating the App layouts and flows. Then you could hand off to your developers and have them coding.

I am always looking for better and faster ways to develop Apps and am going to adopt this tool in full force. From what I have read online they are expanding out to bring App development to a whole new level.

So quit dragging your feet and take action on your App idea!

Jeremy Callahan The App Man

Contact Me!


Twitter: @jeremycallahan

Jeremy Callahan is a Mobile Commerce Expert, App Developer and Founder at Flip Shop Marketing

Do you deliver on time?

Jeremy Callahan - Do You Deliver On Time Every Time?

This week while I was talking to my co-worker and he said “your team is delivering on time and needs to slow down so we can catch up”. He was 100% joking. It just happens that my team isn’t facing the issues the other teams are having. But it got me thinking… In development there is only one thing that matters.

Do you deliver on time!

It’s as simple as that! Can you deliver your code on time every time? I don’t care weather you code in Swift, Java, SQL or whatever. As an engineer you have one responsibility and that is to deliver on time.

Now I know you are going to say it has to be high quality. And I agree with that. But if you code passes QA then the quality is there, right?

Look I’ve been a developer for 20 years and the one thing that sets me apart is I can close! Just like a top sales person I close 100% every time. Do you?

You are most likely a better coder than me. You know every frame work and all the latest and greatest. Big Deal… So What… All I want to know when I hire developers is do you deliver on time every time?

Think about this… Developers work in 2-week cycles called Sprints. Before the sprint the developers sit in a room and scope out what they are going to work on for the next 2 weeks. So not only are the committing to the work but they are deciding how much work they will do.

It’s the greatest job in the world. I tell you how much work I will do and you just have to accept it. If I’m lazy I can commit to very little and if I’m crazy I’ll over commit. Either way, the developer gets to set the bar and everyone in the company has to deal with it.

So I’ll repeat it again (a little stronger this time)…

If you cannot deliver on time you suck!

The one thing I always stress to my teams is “If we deliver on time we all are going to get a raise and be loved. If we don’t, we are going to have to have bullshit meetings and point fingers. People are going to get poor reviews and possibly fired.”

It doesn’t matter where you went to college, where you work or how amazing you can code.

I have only one question: “Can you deliver a finished product on time?”

Jeremy Callahan The App Man

Contact Me!


Twitter: @jeremycallahan

Jeremy Callahan is a Mobile Commerce Expert, App Developer and Founder at Flip Shop Marketing