In a world where developer and admin workforces are commonly remote and often working on many features that are to be bundled into larger releases the idea and practice of continuous integration is one that can deliver real results for quite minimal investment.
There were two speakers due to talk on the matter, so rather than I spout on about the topic myself I’ll cover their presentations as best I can.
Klea Kolaric – Using Bamboo to enable CI
Klea is a technical consultant at a Salesforce implementation partner and talked about how they are using Bamboo within their CI workflow at the company. Bamboo is a CI and Build Server tool from Atlassian (who also make the Confluence and Jira tools).
Klea started off by talking about the options for deploying to Salesforce; Using Changesets, an IDE or CI tools. She listed the pitfalls of the first two options and how the CI route removes a lot of risk from human error as well as giving huge speed improvements.
Using tools such as Bamboo you also get a nice controlled process for rolling back deployments, useful if something goes wrong (as it sometimes does). Another big benefit, in my eyes at least, is the auditing ability that tools such as Bamboo can give you. Klea told us how you get the important Who, When, Why, What and How information through Bamboo’s great integration with the other tools in their toolset. Essentially commit messages from Bitbucket and issues from Jira are all linkable if provided.
One handy tip, that might just save you from a major head-ache might be to not set deploy to production variables by default. Klea has her setup such that if she accidentally runs her deploy process, then the automatic parts will only run a validation build; for her to run an actual deploy to production she has manual steps that need to be fulfilled.
Sebastian Wagner – Multi Orgs and using Git for CI
Sebastian, a freelance Salesforce Certified Technical Architect was the next and last speaker for the evening. His talk covered how and why Git and CI techniques and tools can be used in Salesforce development. His talk covered some of the same ground as Klea’s but was less Bamboo-centric; again he covered some of the issues that can be resolved (or at least reduced) by using CI, but he also mentioned non-Atlassian tools such as Github and Jenkins. Here, at MobileCaddy we’re using both Atlassian and non-Atlassian tools for our CI. The tools are similar but certainly some are more suited (and free) than others.
There was a lot of content in Sebastian’s slides, and for those that want to dig in he has kindly published them here. One of the key points that was mentioned but I think is worth picking up on is the use of a good git branching model. Sebastian mentioned the GitFlow model which Atlassian have brilliantly written up. I first came across this kind of model through the excellent post by Vincent Driessen called A successful Git Branching Model. Even though this was posted by him over 5 years ago it’s worth a read for sure.
On Continuous Integration: if you’re not doing it, start… today.
On the event: This was the most attended meetup to date I believe and shows how the community is going from strength to strength. I did note though that there were at least 70+ blokes in the room, and less than 5 ladies. I tweeted this and got a reply from April Kyle Nassi (Developer Community Manager at Salesforce) and as you can see in this conversation it looks like there are steps at least to improve this. It also turns out that there was a Women Who Code event on in London on the same night, and this could certainly have played a part.
As usual there was a full supply of beer and pizza, so thanks again to the sponsors.
The meetup took place at the excellent SkillsMatter, and they had everything that could have been asked for from a venue.
Sani Yusuf – Kick Off
An introduction to Ionic, it’s past, present and future was the starter dish for the evening. Sani took to the front in his famous Google Glass and took us through what life was like before tools like Ionic arrived on the scene. This was a time when to develop apps for mobiles meant using different languages for the different platforms. A time when these restrictions meant porting apps and having multiple, non-interchangeable teams of developers. He told us how the first wave of Hybrid apps promised to free us from these constraints and how these promises never really delivered… and then came Ionic.
Ionic, for those that don’t know, is a framework/SDK enabling folk to quickly build hybrid mobile apps using HTML5 technologies. Ionic uses the amazing Apache Cordova tools to take advantage of device features (GPS, camera, etc) as well as enabling the apps to be built into suitable formats for submission onto the different app stores (iTunes, Google Play, etc).
With Ionic came a toolset that removed some of the pains that developers were used to when initially building Cordova apps. A focus on performance meant that apps could now be built that had native like experiences… users shouldn’t/wouldn’t need to know if apps were native or hybrid. And this is what we really like about using Ionic ourselves at MobileCaddy. With every release (and keep in mind it’s still in Beta) the performance across all platforms just keeps getting better. Have I mentioned yet that we big fans of Ionic at MobileCaddy?
A quick demo was then rolled out to demonstrate just how quick it is to get started with Ionic… and if you want to see for yourself head over here. Sani joked at how you could have a $1bn app in minutes, in a way there are real serious opportunities available.
And just then not only did the beer and Pizza arrive, but we were also privileged to have Max Lynch (one of Ionic’s founders) join us on a Hangout.
Max Lynch – A Hangout
Max mainly focused on chatting about the new and upcoming features and tools that he and the Ionic folk were working on. Most of the focus was on the upcoming Ionic.IO. He discussed how that even though Ionic was currently enabling devs to build amazing hybrid apps that there were still pain-points and a lot more that could be done. Ionic.IO essentially delivers a platform to sit alongside the actual apps. This would deliver the following types of features;
Dynamic Versioning – Being able to update your app without having to go through the app submission rigmarole.
At MobileCaddy we have already started addressing some of these issues using the Salesforce platform, for example we can already do Dynamic Versioning and have taken the idea even further with a greater level of control.
Max also talked about the recent work they have done with the Crosswalk project, and how this is further pushing increased performance on Android devices. Essentially this allows you to bundle a specific version of webkit with your APK (the binary application file that is installed on people’s devices). This has the effect of meaning, as a developer, you have a known landscape when dealing with your HTML/JS/CSS, as well as of course meaning you can take advantage of newer builds and their feature sets sooner that might otherwise have been possible.
One question came up for Max about Angular 2. His reaction was positive, saying he was excited and that Ionic for Angular 2 would be on the cards. He also mentioned that Angular 2 is pushing towards a component based framework. I’ve not really looked into Angular 2 in any great detail, but this component based framework might play very nicely with Salesforce’s Lightning components. We heard about these from Doug and Skip from Salesforce at the last London Salesforce Developer’s meetup, so see our review for more information.
Ryan Hanna – Showcase
Co-organiser Ryan was next up, with the task of showing off a few apps built with Ionic, but before I get to that I should cover some of Ryan’s background. He’s a self taught developer (using Code Academy) and has only been in the game for three or so years. What’s amazing then is the fact that he’s the sole developer on his own app Sworkit, and the success that this has had… but more about that later.
(Secure) Offline, Data Synchronisation out the box
Salesforce authentication with no coding
A controlled application development/deployment lifecycyle, including OTA app updates.
We also demonstrated our Deploy to Salesforce feature for the first time.
This allows developers to deploy new versions of their mobile applications to the Salesforce platform from within the very app they are building. I have to be honest and say that I am very excited about this, and even more so about where we see this heading. Just another tool that we hope will ease enterprise mobile application development.
Richard Sands – Angular Fullstack Ionic
A late entry to the lineup, Richard give us a whirlwind tour of his new Angular Fullstack Ionic project. I think he can explain it better than I can, so this is lifted from the Readme;
The motivation behind Angular Fullstack Ionic is to streamline the development of projects that include an API, Angular webapp and Ionic app. It’s core design principles include sharing code and assets wherever possible, creating an efficient workflow and making it super easy to start off a project with handy components available out of the box (e.g. user signup/login).
It is based on the brilliant Yeoman angular-fullstack project
His enthusiasm and passion shone through, and despite the project be very young I can see that it shows potential.
The event was a great success, and I look forward to seeing more from this exciting community. And I’m sure that MobileCaddy will continue to be a part of it.
If you follow us on Social Media or have read our Dev Blog you may have noticed that we’re big fans of the Ionic Framework: “The beautiful, open source front-end SDK for developing hybrid mobile apps with HTML5.” So you can imagine our excitement when we heard there was going to be a brand spanking new IonicSDK Meet-up group on our proverbial doorstep; somewhere we can wax lyrical about the Ionic Framework, AnugularJS and building mobile applications that can be deployed everywhere.
The Ionic UK Meet-Up group is hosting it’s launch event on the 29th January in Skills Matter offices in London. There’s a full agenda of talks and presentations: Sani Yusuf, the event organiser will get things rolling with a talk about Ionic’s, past, present and future, and a demo of some features. After a live hangout with Ionic Founder Max Lynch and the team at Ionic HQ in the US, there’ll be a showcase where group members can demo what they’ve been building with the framework. Ryan Hanna, founder of chart-topping Ionic-built exercise app Sworkit, will be presenting some of his work, and Andrew Savoury from Adobe’s Phonegap will also be around for those that want to talk about this very successful open-source platform.
We’ll be presenting MobileCaddy during this showcase, so if you’re interested in how our suite of dev/ops tools mobilises the salesforce.com platform, come and check out our demos of seed apps built using the wonderful Ionic framework. We’d also like to demonstrate how Ionic developers can rapidly start building enterprise apps using an encrypted local store, so that the apps work fully offline with no extra development work. This is at the heart of what MobileCaddy does; for information on our design concept please read this blog post by our CEO Justin.
All in all, we’re really looking forward to what promises to be an interesting and insightful evening, and seeing how one of favourite developing platforms is being put to use. Hope to see you there! Feel free to contact us at any point with any queries on firstname.lastname@example.org. To sign up for the meet, follow this link.