Peopler – Future availability

Whilst Peopler isn’t exactly being downloaded in the millions, I’ve received *actual* feedback from users, which shows they are a) using the app and b) interested enough to email me!

One feature, which I’ve wanted to add for a while, is the ability to view the future availability of your favourites. It’s all fine being able to see a person’s availability today, but what about tomorrow or the day after? To sort this, I’ve started building a Day Picker into Peopler. iOS Simulator Screen Shot 29 May 2015 12.12.03This was an early mockup I did,  so I could see how a horizontal date picker would work. I’ve seen this horizontal pickers and like the look of them. After some coding, I ended up with something like this.

iOS Simulator Screen Shot 29 May 2015 17.22.56

You can see five days in advance, scrolling right will show you up to thirty days. This is an iPhone 5 screen size and I suspect the iPhone 6 will probably show 6 or 7 days. I need to experiment with this a little to ensure the auto layout works. Anyway…I digress. You can see that I’m free for the Remainder of the day. When I select a day in the future, it goes a bit wrong 🙂

iOS Simulator Screen Shot 29 May 2015 16.59.49

My “availability” algorithm works off the current time and isn’t factoring in the fact that we’re dealing days in the future. This was actually a good thing as it made me realise that showing availability in this way is pointless for any date in the future. My initial feeling is that availability might be better expressed in number of appointments and actual free time.

I need to think on this a little as working hours will factor into this too. No point in telling you that somebody have seven hours free if that time is beween 5pm and midnight!

For the next release, version 1.2.0, I might just add the day picker into the schedule view. If you have any thoughts on this, I’d love to hear them!

TestMDM now supports VPP

After a very kind request from a user, I decided to add basic VPP support to TestMDM.

As of 2 minutes ago, you can now:

  • Add your VPP token.
  • Register new user accounts within your VPP account.
  • Assign licenses to these accounts
  • Install apps from the VPP using the MDM functionality

Adding your VPP token

To get your VPP token, you must first visit https://vpp.itunes.apple.com/ You can then signup your organisation for VPP using a new or existing Apple ID. Once you’ve signed up, open the Account Summary page and download the token.

image

Back in TestMDM, open your Account Details page and paste the token into the big text box called VPP Token. Then click Save. You’re good to go.

image

Register New Accounts

Under the VPP section, you will now see a list of user accounts and licenses belonging to your VPP account. If it’s an account you’ve used in the past, you will likely see a lot of information here. I expect I’ll need to clean this up a lot, but for now I’m assuming it’s a new VPP account.

Hit the Register User button. All you need here is an email address to represent the user account. This doesn’t have to be an Apple ID. Imagine this account as an employee of your organisation. In my case, I’d use tomas@coldbear.co.uk as this is my organisation email address. Once you’ve registered the user account, you’ll be presented with a link to invite this user to be part of your VPP. When you open the link, you’ll be prompted to sign into iTunes and you then associate tomas@coldbear.co.uk with an Apple ID (in my case, this is a completely different address).

This does make sense, since people’s Apple ID typically isn’t their work email address.

Assign a License

Once you’ve registered a user account, you can then assign a license to them. A license represents one installation of an app. You purchase them via the Apple VPP page where you registered earlier. You select the app and purchase a certain quantity of licenses.

When purchasing, be sure to select Managed Distribution as the Distribution Type. This is the only mode TestMDM supports at this time. As best I can tell, you get a license for each installation allowed e.g. buy 10 apps and you get 10 licenses.

image

I’ve purchased two copies of Roomr to illustrate the point.

image

On the VPP page, you’ll see two licenses listed.

image

I can then assign one of these licenses to the user account I created.

Install app from VPP

With an app now assigned to a user account, it’s possible to install it directly from the App Store using the MDM functionality. To simplify, there is an install option beside each assigned license.

image

Clicking it will bring up the familiar “Install An App” dialog, with a small change. There is now a field for an AdamId (an iTunes Store Id for an App). Just choose the device and hit submit. You must be targeting a device that is signed into iTunes using the AppleID you associated with the VPP Account you created in step two. It’s confusing I know, but that’s the way it works!

image

Once you hit submit, you should receive a notification on the device asking you to confirm installation. If the iTunes Account doesn’t have permission for this app, you’ll see a “CouldNotVerifyAppId” response on the Commands screen.

Next Steps

Once the app has been installed, you can perform the usual configuration.

It’s also possible to Unassign a license. This removes the license from the User Account and subsequently the iTunes Account. You might even get a notification from the iTunes Store once it has taken effect.

image

The VPP functionality is only available to Unlimited users of TestMDM.

From Barcode to Passbook

My prototype app based on the MakeMeAPass website is up and running. You simply select the card type, use the camera to scan the barcode and hey-presto, you’ll have a passbook pass to add.

IMG_2904IMG_2903

The usual issues still apply, such as some scanners being unable to scan barcodes on Passbook.

I’m planning to add simple location awareness too, once I get version 1.0 into the store. It will be available to download for 99p.

Peopler now approved!

After more than one rejection by Apple, Peopler has now been approved for sale. If you want to check people’s calendars in MS Exchange without needing Outlook or messing with Shared Calendars, Peopler might be what you’re looking for! It’s free to download and can be upgraded using an In-App Purchase if you like it.

https://itunes.apple.com/us/app/peopler-check-availability/id950240458?ls=1&mt=8

Please send me any feedback you have and share it around if you do like it!

Somewhere Quiet is now available to download from the App Store

My latest app, Somewhere Quiet, has been approved by Apple in just under 5 days.

It’s my hope that this app will help developers, writers and other coffee shop entrepreneurs, find quiet places to work if they are out and about.

If you fit this category, download my app for free and start rating your favourites!

Download now https://itunes.apple.com/gb/app/somewhere-quiet/id878080998?mt=8

Exploring apple’s Managedappconfig feedback

In part one of this two part series, I showed how you can use TestMDM to remotely install and configure Apple’s ManagedAppConfig sample app. In this part, I will demonstrate how you can retrieve feedback recorded by the app.

Apple allows an app to read managed configuration by opening the “com.apple.configuration.managed” key in NSUserDefaults. It also allows data to be stored in “com.apple.feedback.managed”. This data can be retrieved by an MDM at any time, allowing the app to effectively report back.

When you launched the ManagedAppConfig app, you will see two labels, Success and Failure, each with a count. The count is zero.

IMG_2227

If you hit the go button, you will see the failure count increase to 1. Go ahead and press it a few times.

Now, using TestMDM, update the serverURL value to be a site you know exists. In my case, I’m using www.tomasmcguinness.com. Read part one to see how you update the configuration. Once the app has updated the URL value, hit Go another couple of times. The Success count should increase accordingly.

IMG_2233

The app has, in the background, been recoding the values for Success and Failure in the “com.apple.feedback.managed” setting key. We now want to retrieve this data.

From the “Queue Command” menu in the Commands section of TestMDM, choose Fetch App Feedback.

Screen Shot 2014-03-09 at 11.26.21

The Get Managed App Feedback (I need to change the name!) dialog will open.

Screen Shot 2014-03-09 at 11.26.40

Enter “com.example.apple-samplecode.ManagedAppConfig” as the bundle identifier, assuming you haven’t changed it from the value in Apple’s code. The command will be queued.

Screen Shot 2014-03-09 at 11.26.58

Once it has completed success, just click the Show Details option.

Screen Shot 2014-03-09 at 11.27.12

Et Voila, you’ll see a PList formatted document containing two keys, which contains the values in the UI.

If you are interested in testing your own Enterprise apps, you can sign up to TestMDM for free and get one hours free trial.

If you have any questions or comments, please email me tomas@coldbear.co.uk or leave a comment below.

iOS Enterprise managed app configuration

With the release of iOS 7, Apple introduced support for managing an app’s configuration using a Mobile Device Management system. This allows enterprises to deploy apps and then control their configuration centrally. You could provide URLs or enable and disable features with the push of a button.

An app that supports managed configuration just needs to read a particular key, com.apple.configuration.managed from NSUserDefaults. This yields an NSDictionary which contains all the settings pushed to the app via the MDM. For my work with Roomr, I choose to support managed configuration so that the Exchange URL could be set and modified with ease.  The code changes are very simple.

Testing managed configuration is another kettle of fish. You can provide the configuration in one of two ways. Firstly, you can provide the configuration when the app is being installed or you can provide it after the app has been installed, effectively updating it.

To accomplish this, I used my own product, TestMDM. TestMDM aims to replicate many of the features of a MDM without replicating the large cost and complicated setup. It’s aim is to make it possible to test enterprise features without having to suffer the expense of purchasing an MDM. It also means you don’t need to trick an MDM provider into giving you a trial and then spending hours getting that setup.

To test my configuration, I used TestMDM to first install my app. Once I had successfully installed it, I then pushed configuration to it

image

I just click Queue and TestMDM takes care of the rest. I can debug my iPhone app at the same time and ensure the configuration is detected and loaded correctly.

If you’re interested, please check out TestMDM – I’m making improvements all the time so if a particular feature is missing, let me know and I’ll add it to the roadmap.

For developers who want their apps in large enterprises, supporting iOS7’s Enterprise features, such as single sign-on and managed configuration, is a no-brainer. Hopefully you’ll find TestMDM useful. If you have any questions, please get in touch!

Testing iOS Enterprise features without an MDM

Recently, I deployed a special version of Roomr to a large enterprise customer for inclusion in their Enterprise App Store. Part of the arrangement was that I support two enterprise features; Single Sign-On and Managed App Configuration.

This, on the face of it, was an excellent deal. I watched some WWDC videos on preparing apps for Enterprise and had managed to land a face to face meeting with the head of IT at this company. It seemed like a small amount of code would need changing in exchange for a tremendous financial opportunity (the company in question has over 120K employees world wide).

However, things are rarely as easy as they appear.

I immediately discovered, to my dismay, that the Managed App Configuration feature required a full MDM (mobile device management) platform to operate correctly. I searched the internet looking for MDM software that I could download and use for testing, but sadly I couldn’t find any. All of the major providers offer trial versions, but you have to get in touch with them etc. etc. As I wasn’t going to buy their software, they were understandable disinterested.

I knew I needed to test my software before releasing it, so I needed another approach.

I decided to build the software I needed to complete my testing. After some prelimiary research I discovered I needed to be a member of the Apple iOS Enterprise developer program. At £185, this was a hefty amount, but the potential earnings from a successful enterprise deployment made it worth the investment. I handed over my credit card information and got Cold Bear Ltd registered within the Enterprise program.

After getting the MDM protocol documentation (thanks to Peter Marcos at Apple for helping with this), I got to work. After much hair pulling, use of SSL and prolific swearing, I got a basic MDM solution working. Another few hours and I had tested my Enterprise code. I packaged up the IPA and emailed it to my client.

After the dust settled, I got an email from another developer who was having trouble testing the same Managed Configuration feature. After establishing that he would be willing to pay money for a simple way to test this feature (his MDM wasn’t working) I started refactoring my code.

After more swearing and hair pulling, TestMDM (http://testmdm.cloudapp.net) was born! TestMDM offers basic MDM functionality in a time-boxed fashion. You might want to test your app for an hour or a week and you only pay for the time you need. I hope this strikes a balance between the time and cost purchasing an MDM and the need to test some features quickly and effectively.

It’s almost ready for launch. I’m just putting the finishing touches to the device enrolment functionality to make it as easy as possible.

So, if you’re an enterprise developer or thinking of getting into enterprise development, TestMDM might be of use to you. If you’d like to know more, please drop me an email – tomas@coldbear.co.uk and I’d be happy to have a chat about what you need for enterprise development.

Tom

PS The name TestMDM is most likely to change Smile If you have any suggestions, I’d love to hear them.