It’s long been rumoured that iOS 7 would bring about a shift in Apple’s design philosophy and with the keynote of this year’s World Wide Developers conference not only did we get to see the new user interface but within hours developers were able to download the first beta version and naturally I grabbed a copy immediately on release. The install was painless, a simple IPSW restore via iTunes though this version does feel very much like a beta having experienced more than a dozen crashes already within the first couple of hours (mainly with multitasking).
Having spent a little time with iOS7 I would say that visually it’s different enough to keep interest in the platform going, it may not be revolutionary but it certainly feels a lot more modern than iOS6 which somehow seemed old fairly soon after launch with the successive releases of Jellybean and Windows Phone 8. Putting aside the shiny-shiny UI changes the largest and most important steps are those that improve usability, making it easier to get to controls and settings and adding to Siri’s repertoire. There are some minor bugbears that jump out at me immediately too such as Calendar’s monthly view which no longer highlights busy days and Mail still throwing an error per-mailbox at you when it can’t connect when the reality is that your internet connection is down, I’m sure there will be more over the next few weeks as I use iOS7 on a daily basis as well. Now, on to the main features…
Death of a Thousand Flashlight Apps
Despite the inevitable focus on the UI changes iOS7 does bring about a number of new features, some might argue several are overdue however there’s a good level of innovation in there and even where Apple have ‘taken inspiration’ from others they’ve generally done it quite well. The highlights are…
Control Centre – swipe up from the bottom on any screen (including the lock screen) to see a new ‘quick settings’ screen providing access to music controls, screen brightness, wifi, bluetooth, torch, clock, calculators and the camera. You’ll notice that like much of iOS7 the translucent background creates quite a different feel depending on then wallpaper you’re using, in one example I’ve used a photo of myself whilst the other is the stock (animated) background.
Notification Centre – an updated UI matching the rest of iOS7 but with instant access from the lock screen to today’s calendar, missed calls/messages and the remainder of your notifications.
Multitasking - a new full-screen preview (looking suspiciously like WebOS) enables you flip between apps easily and ‘flick away’ apps to terminate them (Android anyone?).
Camera & Photos – a simplified interface allows users to swipe between Video, Photo, Square and Pano (yes, really – ‘square’ is now a picture type). Additionally, photos are now automatically organised into collections and grouped by year with small thumbnails…
Safari - possibly the largest (and most overdue) collection of improvements with the clutter and chrome gone entirely leaving substantially more space for content, the URL bar and search box are finally combined and coverflow is now being employed for changing tabs.
Siri - now includes Wikipedia & Twitter content and provides access to settings (e.g. brightness, Bluetooth)
General Look and Feel – I’ve spoken of the simplicity above, here’s a few screenshots to illustrate the new design ethos…
There are other features I’m yet to play with like iTunes Radio (not available in the UK yet), Airdrop file transfers, audio-only Facetime calls, turn-by-turn walking directions, etc. Apple also promises to be friendlier for business (which essentially means sysadmins), including data protection, license management, Mobile Device Management, wireless app configuration, enterprise single sign-on support – it will be interesting to see how useful the features are in practice.
During a project there always comes time to determine what the minimum version of iOS to support is for a given project, last night I stumbled across a handy infographic for checking which devices support which OS versions as well as some other handy feature related info.
I was given the chance to order a new work phone recently and whilst I could’ve upgraded from the iPhone 3GS to the iPhone 4 I decided to make the jump to Android with a shiny new Samsung Galaxy S2, I’ve still got the iPhone for testing though so I’ll be jumping from one to the other. Having been a long term iPhone user it does feel somewhat like a switch to the dark side but if I’m going to design Android apps I’m going to have to understand the good and the bad parts of both platforms.
One of the most important considerations when designing mobile apps is the user’s expectations and that varies considerably from one platform to the next and despite their differences iOS and Android are comparable platforms, much more so then Windows Phone 7 or Blackberry. Both Apple and Google have created thriving downloadable app ecosystems that together are fast becoming the platform of choice for the modern smartphone, I’m confident Windows Phone 7 will become a major player in the space but there’s a long way to go before it gets there – as for Blackberry and HP/Palm – who knows?
So now to the results of my little experiment, in this post I’ll focus on the features and capabilities that I like about Android and whilst I will cover the things I don’t like, this is not a rant for or against either platform, it is intended to be as Bill O’Reilly beautifully puts it without a hint of irony: “fair and balanced”.
The best features…
The “back” button – at first it seems redundant to have a hardware based button for just one purpose but once you get used to it you realise how handy it really is. Every time I go back to the iPhone I end up in a situation where I find myself bailing out of an app when all I really meant to do is back up a step, everyone that owned a Sony Playstation or PS2 will know how natural it felt to always use the triangle button to go backwards and I really do find I miss it when I’m on the iPhone.
The pull-down notifications bar – this may well be more of a Samsung customisation but the top status bar can be pulled down like a roller blind to reveal some quick key settings (turn on/off bluetooth, Wifi, GPS) as well as showing notifications such as apps needing updates, new emails, push messages, etc. It’s a brilliant way of accessing those features without compromising on screen real-estate.
Swype – if you’ve not come across Swype already you have to give it a try, it is an alternative keyboard where you type words not by tapping each letter but by drawing lines between them. This might sound a bit odd and it is at first but once you get up to speed it really is a delight to use. The main issue I have is that whist you’re in the middle of a sentence and you’re flowing nicely from word to word if you suddenly hit a word that Swype doesn’t recognise or isn’t in the dictionary your entire flow is broken and a hole is punched straight through the fourth wall of user experience. As soon as you have to start thinking about what you’re doing it’s game over in UX terms, something Apple have turned into an art form and most find hard to emulate.
‘Front Screen’ and ‘Back Screen’ applications – the iPhone has a ‘desktop’ and you’re stuck with it, sure you can have folders but even they’re a little limiting and I find myself completely unable to organise my apps in a way that makes sense. Android on the other hand has a distinct separation between the ‘desktop’ where you can have both apps and widgets (time, calendar, twitter, etc.) and the full list of apps, this makes it easy to de-clutter the main screens of your phone but you’re only ever one click away from your entire app library.
The bad parts…
Massively modal menus – I really, really, really don’t like the way that most of what you might call ‘right-click’ actions bring up giant, screen-filling menus from which to choose options. For example, if I’ve opened an email and I want to mark it as unread I have to come back up to the inbox, hold my finger on the email for a second or so then the screen is filled by a giant ugly menu (with plenty of dead-space) from which I can choose to mark the email as unread. On the iPhone if I’m reading an email I’d just press the “Mark Unread” button. No really, that’s it.
General flakiness – it’s hard to qualify this exactly but I’m referring to the many times where I’ve tried to do something and received some weird obscure error message and thought “oh well, that didn’t work then” without knowing why or what to do instead. As an example when I first started playing with the phone I bounded like an excited puppy towards the Android Market, I signed up for an account and picked up a few freebie apps before deciding I really had to have Nmap so I clicked to buy and got the message: “A server error has occurred”. After a little Googling around I finally determined that the cryptic “server error” was just because I didn’t have my card registered in Google Checkout – why couldn’t it have just told me that in the first place? Issues like this really make me think that Google just doesn’t “get it”, at least not yet.
Text selection – again it’s hard to describe but in a nutshell – it’s horrible, I almost never end up putting the cursor in the correct spot and about a third of the time I end up opening a modal menu where you can copy and paste (it works but it’s clunky not very intuitive).
Security – I’ll start by saying that I’ve not personally had a bad experience of security on Android but I know there are plenty of known instances and I can’t help feeling a little ‘ooky’ about download strange and unheard-of apps knowing that anyone could have put them into the Android Market and they didn’t have to go through any approval process.
I’ve been doing a little research into how best to manage the whole iOS Development / Ad Hoc Distribution (UAT / beta) / App Store (prod) lifecycle and whilst I’m not quite at the stage where I’m ready to write-up a workflow document I’ve come across some useful resources that I thought might be worth sharing. Since all compiled iOS apps must be signed there are some extra considerations when compared to rolling out regular compiled or interpreted code, sure you can brute-force your way through the process (I did this for my Veggie Phrases app) but that can only ever work well when you’re a one-man-band developing apps for your own purposes.
If you’re developing apps for clients or have a distributed development / testing team you’re almost certainly going to think a little more carefully about how you manage keys, certificates, provisioning profiles, App IDs, bundle seeds, bundle identifiers and so on. There’s not much structure to this post since it’s just a ‘what I’ve found so far’ effort but hopefully the resources might prove useful…
I’ll start with what is probbaly the best piece of Apple documentation I could find: the iTunes Connect Developer Guide. After banging my head against the desk trying to get Veggie Phrases onto the App Store it’s the document that made all the pieces fall into place, athough it’s a pretty high-level overview.
Antonio Holguin has written an excellent post: Apple iOS Development Process Summary which explains the whole end-to-end process in depth. It’s not for the faint-hearted but it answered a lot of the questions I had where I’d found the rest Apple’s documentation lacking (please correct me if I’m wrong, perhaps I’ve just not found the best bits?).
If you need to write applications that share Keychain Access there’s some useful information on UseYourLoaf.com, even if you don’t need to do this it will help understand how to use Bundle Seed IDs correctly.
Another challenge with iPhone app development is how to distribute applications to remote testers and how to conduct a beta / trial without going via the App Store, thankfully TestFlight solves this by providing a simple way to gather device UDIDs and distribute the Ad Hoc executable over-the-air. The service is clearly evolving and it currently does a very good job of what it does but seems to be suited to small-scale development and lacks some of the features that a corporate development team might need (audit trail, alerting, security hierarchy).
I’ve also come across the iOSDev UK Conference which may be interesting, I’m not yet sure whether I’ll attend since I’m only a casual developer but some of you may find it worthwhile.
Well, I hope that helps people, if anyone has suggestions for additional resources covering process management, workflows, etc. I’d be glad to hear it.
Today I attended the SAP BI 4.0 launch event at the Royal College of Physicians in Regent’s Park London, the first major launch event for Business Objects since being firmly under the SAP banner lending it a degree of expectation amongst the BO user community. With all said and done the day had a slightly unusual structure, interleaving the “new features” sessions with “the future of BI” and “other interesting stuff” talks so the remainder of this post covers the main themes of the day and the “big picture” topics whilst I’ve broken out the new features into a “What’s New in Business Objects XI Release 4 / SAP BI 4.0?” post.
The morning’s main talk came from SAP’s Technology Evangelist, Timo Elliott (for those of you from the SQL Server world think of a cross between Brent Ozar and Andrew Fryer) who delivered a punchy and informative overview of the ‘big ticket’ enhancements coming in 4.0. The main themes of Timo’s talk an of the day in general were the forthcoming enhancements in the Enterprise Analytics space including the recently acquired Column-Oriented data store Sybase IQ and AP’s latest iteration of In-Memory analysis, HANA (High-performance ANalytical Appliance). HANA will run on hardware from vendors such as IBM and HP with upwards of 1TB RAM and sit between SAP BW and other large data sources providing lightning-fast (up to 350x faster in SAP tests) though later iterations of HANA will all-but replace the current storage engine behind SAP BW (planned late 2011) and ultimately will replace the entire data storage infrastructure behind SAP’s ERP systems and potentially other third-party applications.
Timo’s enthusiasm for these new technologies clearly showed and having been in the industry (and the company) for 20 years it’s worth noting that he described the advent of large-scale in-memory analytics as a “once in a decade” leap in capability and for Enterprise-class organisations I’m quite sure it will be but having worked in much smaller companies I’m somewhat sceptical about how much of an impact it will make at the lower end of the market.
Another major theme for the day was the advent of Analytic Applications, essentially packaged BI and Data Warehouse products pre-built for specific industries (e.g. Healthcare, Retail, Manufacturing) or for departmental purposes (e.g. Finance, HR). Demoed by Jeff Veis and Andy Hirst, these applications are presented as a series of dashboards but since much of the underlying KPI definitions and data architecture are already built they can reduce implementation time to as little as 12 weeks vs. 6-9 months for a ‘from scratch’ implementation. It’s easy to be sceptical about this as we all tend to believe that our problems are unique but each application is focused so closely on a particular industry/department that even if they’re only able to meet 70% of the core requirements out of the box the simplicity and reduced timescales ought to be well worth the sacrifice, especially since they’re customisable after the initial setup.
The third major theme of the day was Data Quality, in fact in addition to the session on Information Steward by Barry Dodds and Dave Pugh four other speakers made a point of telling the audience that everybody in the room had data quality problems – it’s probably true but I couldn’t help feeling a little nagged by the end of it all! The tool itself seemed very capable and for a DQ application it was remarkably visual and included dashboard-style elements (to paraphrase Barry) “using analytics to improve analytics” which despite being a cool soundbite is a actually a very sensible approach to take.
Also announced was the new Complex Event Processing engine Event Insight, essentially these CEP engines (like Microsoft’s StreamInsight) take an incoming stream of events in real-time from operational systems and provide monitoring and alerting capabilities as well as processing for more traditional reporting and dashboarding. Additional products mentioned but not thoroughly explored were a collaboration tool sapstreamwork.com and a new unstructured text processing engine that is able to parse free text such as Twitter feeds and provide “sentiment analysis” as well as tagging various context indicators including geography.
Roadmap wise we were told to export more along the lines of Pervasive BI, Big Data, Social / Collaboration and more in the Mobile BI space. On the latter we should expect enhancements to the existing Business Objects Explorer mobile app as well as a native WebI application, mobile platforms mentioned included Blackberry, Symbian, Windows Mobile, iPhone, iPad and even the RIM Playbook but oddly no mention of Android. I’m not sure if it was left off of the slide by accident or there are legitimately no Android plans, I’d assume the former since Android is almost certain to become the market leader in terms of wide-spread adoption.
In addition to the Business Objects staff there were also a couple of external speakers both of whom gave interesting talks…
Tony Harper of Capgemini who spoke on the general topic of Mobile BI, highlighting the increased user expectations presented by high quality consumer-oriented smartphone and tablet apps as a particular challenge. The talk was thought-provoking and in particular it Tony’s statement that Mobile BI projects will be “sending information farther from the walls of the data centre than ever before” really underscored one of his main themes that providing so many people in so many disparate locations live access to your data will significantly stretch both performance and data quality and these expectations should be factored into Mobile BI projects from the beginning.
Following Tony was Alys Woodward from the research firm IDC who gave a good talk on the factors influencing BI uptake within organisations listing the most important contributing factors as being as Degree of Training (including training on KPIs as well as the tools), Design Quality (of architecture and processes), Non-Executive Involvement (i.e. get the business users involved), Importance of Governance and Use of Performance Management Methodology (the last two being important drivers in organisations where they are relevant).
Don’t forget to check out my ”What’s New in Business Objects XI Release 4 / SAP BI 4.0?” post too for more detail on the core Business Objects product stack.
Categories: Business Intelligence, Business Objects, Sybase, The Cloud Tags: Analytical Applications, Andrew Fryer, BI, BI 4.0, Blackberry, BO, Brent Ozar, Capgemini, CEP, Column-Oriented, Data Quality, DQ, ERP, Event Insight, HANA, IDC, In-Memory, Information Steward, iOS, iPad, iPhone, IQ, Mobile BI, Playbook, SAP, SAP BW, Sybase, Timo Elliott, WinMo, XIR4
I registered as an iPhone developer earlier this year primarily to get my hands on the pre-release iOS upgrades but recently I was asked to help design the user interface for a BI-related smartphone application and it started my brain ticking. When it comes down to it I’m a BI + SQL guy and it’s been a long time since I’ve actually gotten my hands dirty with real coding (remember the BBC Micro anyone?) but I have spent time on-and-off dabbling with PHP, HTML, CSS and Visual Basic as well as having managed a couple of development projects so whilst I’m rusty I’ve not been totally out of the loop.
- Content – what is the app for?
- Styling – how can I achieve the iPhone look-and-feel?
- Compilation – how to turn a website into an executable binary?
- Publication – what do I need to do to release my creation in the wild?
Since I knew I’d be putting some time into it I didn’t want to build an application that was just a glorified tech demo, I wanted to build an app that serves a valid purpose and that doesn’t exist already which was quite tricky. Fortune was clearly smiling on me since I started working on this project in the same week that I went for a short break to Bratislava (it’s lovely by the way, you should go), being a vegetarian one of my pre-holiday tasks is to find out how to say “I am vegetarian” in the local language and for that I use the International Vegetarian Union’s Vegetarian Phrases in World Languages. It’s a great resource and I usually just print the phrases to take them with me but then I had the lightbulb moment – wouldn’t it be brilliant if I had an app that did this? Thankfully the manager of the IVU agreed with me and so I had my concept – a veggie phrasebook.
Next came the styling issue, if you’ve been an iPhone user for a while you’ll be used to the default look-and-feel that comes with most iOS applications and I had no idea how I was going to recreate that. Thankfully I’m not the first person to have hit this brick wall and developers with skills that are orders of magnitude better than mine have built a number of solutions, the best one out there in my opinion is JQTouch, a JQuery plugin that mimics the native iPhone styling as well as providing excellent navigation animations. A demo of JQTouch is available here: JQTouch Demo and is will only work if viewed on an iPhone or Android handset or in a WebKit browser (e.g. Safari or Chrome).
My general approach to learning new technologies tends to be very simple: just start - sure, you’ll get it wrong and it might be frustrating for a while but you’ll be learning all the way and come out the other end battle-scarred but victorious. Thankfully JQTouch fits my methodology perfectly, there’s no installation to speak of, just download and unzip the package and dive in there with your favourite text editor (I’m fond of TextWrangler on Mac and Notepad++ on Windows). JQTouch essentially uses one giant HTML file with divs for each ‘page’ of the application, the file includes the JQTouch libraries and a couple of CSS theme files and image sets – one in black (as per the demo) and one titled ‘Apple’ which looks very much like the settings page of the iPhone.
Having assembled the content, built the base HTML pages and customised the theme my next concern was how to turn it into a compiled app. It’s quite nice being able to run the entire app in a browser window but I wouldn’t quite feel like I’d regained my developer strips without a bona-fide compiled app and there are a few toolkits out there that will help achieve that. The most interesting toolkit to me right now is Appcelerator Titanium which looks powerful but might take some ‘discovery’ time and since I wanted to do the best possible job but in the shortest possible timescale I opted for PhoneGap, a cross-platform toolkit that allowed me to literally copy and paste my web root folder and make a compilable Xcode project almost immediately (seriously, read their Getting Started).
If you’re new to Apple development in general, Xcode is Apple’s development environment for both Mac and iOS applications and comes bundled with the OS as standard – it’s a little like Visual Studio in that it’s an IDE but the similarities end pretty quickly after the obvious. Personally I find Xcode to be a little fiddly and not as intuitive as Visual Studio but that could be a little bias from having spent a lot more time in the Microsoft camp when it comes to development. Nonetheless, Xcode is a great IDE and other than spending the best part of three hours trying to nail down my digital certificate signing chain (what happened to “it just works”?) it became surprisingly easy to debug the app on my iPhone and build the final version of the app.
My secret weapon in this whole process was (believe it or not) the data professional’s Swiss Army Knife – Excel. I’ve often said that if you could teach even half of the world’s office workers how to use Excel properly you could change the world and I believe that the same is true even for the classically technical professions who eschew the GUI over scripting methods. Excel’s blend of spacial referencing and a comprehensive function library make it an ideal code generator and I regularly use it to write large batches of SQL – this time I simply copied the IVU phrases into a spreadsheet, sorted and categorised them and used formulae to generate the best part of over 4,500 lines of HTML – even the menus came from Pivot Tables.
A little bit of tweaking and I was ready to submit the binary to Apple for approval, but that’s enough for now so I’ll talk a little more about the submission process in a future post. Sure, there might be a few kinks round the edges but I think it’s a reasonably good first app and I’ve gained a stack of good experience building it which over the coming months I intend to share in a series of posts.
If you’d like to take a look please check out my Veggie Phrases app page or you can try it out (it’s free) here…