An Interstellar Journey into the CoreCLR and ASP.NET vNext on OS X

A Few Reasons Why You Should Attend APJ Spark

Later this month, I'll be travelling over to Perth for the APJ Progress Spark Conference.

What is the APJ Progress Spark Conference, you ask? It's a free, 3-day action-packed event full of technical sessions and hands-on workshops, highlighting the latest solutions from both Progress Software and Telerik. We'll have some of our best and brightest from across the Asia-Pacific region, demonstrating what's possible with our software and answering your questions. You'll see technologies like OpenEdge, Telerik Platform, Sitefinity, and more! We also have a number of external speakers joining us, delivering presentations on important application development topics such as cross-platform mobile development, IoT, and security.

A few days ago, we published the agenda for the conference. Rather than going through each and every session, I thought highlight just a few to provide a taste of what to expect:

Cross-Platform Mobile Development for iOS, Android and Windows Phone

We kick things off with the lovely and vivacious Tommy-Carlos Williams. Tommy's great; he really knows his stuff. I've dubbed him "the Greatest PhoneGap Developer in the Southern Hemisphere". Tommy will be delivering a presentation on how to target mobile platforms with tools like Apache Cordova, Telerik AppBuilder, and Telerik ScreenBuilder. If you're keen to see what's possible in the world of hybrid mobile app development, you'll definitely want to see this session.

swipe-fest.gif

Putting Your Things on the Internet

Connected devices are everywhere these days. Even fridges have IP addresses, for crying out load. Getting these devices online and connected through to your applications is critical to play in this brave new world - otherwise known as the Internet of Things (IoT). That's where Microsoft Australia's own, Andrew Coates comes in. He'll be delivering a very cool session that showcasing some amazing things being done at Microsoft around connected devices. He'll show you just how simple it is to integrate them into new and existing applications. It will be a cracker!

Hack to the Future

Troy Hunt's presentations are scarey to watch. Why? Because he's great at showing where vulnerabilities may lurk in your applications. But don't worry; Troy will be here to help us understand how you can protect yourself against the bad guys. In his session, you'll see how tools like Telerik Fiddler can help you detect what your application is transmitting "along the wire". He'll also share a number of tips and tricks that you can apply to guard yourself against a number of attack vectors. Bring your popcorn because this session is going to be fun to watch!

Project Feather: Develop Rich User Experiences with MVC and Sitefinity CMS

We have Bulgaria's own, Peter Marinov joining us in Perth to talk to us about Project Feather, the awesomesauce of Sitefinity site development with ASP.NET MVC. I'm really excited to see this session because we've put a boat-load of work into Project Feather. It's a great project because it gives you back the control you've been after when building against Sitefinity.

In addition to these sessions, we'll also have a 3-hour workshop where you'll see a soup-to-nuts walkthrough of Sitefinity and Telerik Platform. I like to think of these two solutions as Telerik's peanut butter and chocolate combination. They're simply awesome. If you're looking for a way to get online with a site and make your content available to a rich, immersive mobile application then look no further. This workshop will have you covered.

That's just a small sampling of what you can expect to see at the APJ Progress Spark Conference in Perth on April 21-23. Why not register and join us? Did I mention it's a free event? I did? Okay, cool.

I'll see you there!

What is a Hybrid Mobile App?

Hybrid mobile apps are like any other apps you'll find on your phone. They install on your device. You can find them in app stores. With them, you can play games, engage your friends through social media, take photos, track your health, and much more.

Like the websites on the internet, hybrid mobile apps are built with a combination of web technologies like HTML, CSS, and JavaScript. The key difference is that hybrid apps are hosted inside a native application that utilizes a mobile platform's WebView. (You can think of the WebView as a chromeless browser window that's typically configured to run fullscreen.) This enables them to access device capabilities such as the accelerometer, camera, contacts, and more. These are capabilities that are often restricted to access from inside mobile browsers. Furthermore, hybrid mobile apps can include native UI elements in situations where necessary, as evidenced by Basecamp's approach towards hybrid mobile app development.

It can be very difficult to tell how a mobile application is built. Hybrid mobile applications are no different. A well-written hybrid app shouldn't look or behave any differently than its native equivalent. More importantly, users don't care either way. They simply want an application that works well. Trying to figure out if a mobile application is hybrid or native is like trying to differentiate rare grape varieties of wine. Unless you're a sommelier or someone who really cares about it, it's not terribly important. What matters is that the wine tastes good. The same can be said for hybrid mobile applications; so long as the application does what it's supposed to do, who really cares how it was built? This point is underscored through an experiment we conducted where we wanted to see if people could tell the difference between a native application and a hybrid application:

How are hybrid mobile apps built?

Hybrid mobile applications are built in a similar manner as websites. Both use a combination of technologies like HTML, CSS, and JavaScript. However, instead of targeting a mobile browser, hybrid applications target a WebView hosted inside a native container. This enables them to do things like access hardware capabilities of the mobile device.

Today, most hybrid mobile applications leverage Apache Cordova, a platform that provides a consistent set of JavaScript APIs to access device capabilities through plug-ins, which are built with native code. As a side note, Apache Cordova originally started as a project named PhoneGap. These days, PhoneGap exists as a distribution of Apache Cordova that includes additional tools. For more context about this history, check out [PhoneGap, Cordova, and what's in a name?[(http://phonegap.com/2012/03/19/phonegap-cordova-and-what%E2%80%99s-in-a-name/)

These plug-ins include APIs for accessing the device's accelerometer, contacts, camera, and more. There is also a number of plug-ins that are built and maintained by the developer community at-large. These can be found in the Apache Cordova Plugins Registry. A curated subset of these plug-ins that have been throughly tested, documented, and extended can also be found at the Telerik Verified Plugins Marketplace.

Application assets like HTML, CSS, JavaScript are packaged through the tooling made available through Apache Cordova to target platform SDKs. Once built, you have an application that can run like any other kind of application on the device. The tooling provided by Apache Cordova is largely driven through a command line interface. That stated, developers can still leverage IDEs like Visual Studio and solutions like the Telerik Platform to further enhance productivity.

What are the motivations to go hybrid?

Hybrid mobile applications provide a way for developers to re-use their existing skills in web development. Developers don't like the prospect of getting locked into proprietary platforms. This includes the programming languages and SDKs provided by platform vendors (more on this later).

Hybrid mobile application development looks appealing to an organization's bottom line. Why hire a developer for each platform when you can hire one developer and target all of them through HTML, CSS, and JavaScript? Well, the reality is a bit more complicated.

Yes, it's true that hybrid mobile application development enables developers to target more than one platform. However, each platform comes with a set of caveats when it comes to its web runtime or WebView. This is especially true with Android, which is inconsistent between OS versions.

Moreover, there might be unique capabilities of platforms to which a developer may wish to target. In those instances, a combination of plugins and platform-specific code must be utilized in order to take advantages of those capabilities. Alternatively, developers can take advantage of 3rd party web runtimes like Crosswalk that can be embedded in your hybrid app.

It should be noted that Android 5.0 introduced updatable WebViews via the Android System WebView. Check out What Android 5.0's Auto-Updating WebView Means for Mobile Apps for more information about this recent change and the impact it will have for hybrid mobile development.

When should you build a hybrid mobile app?

Before committing to a platform strategy, it's important to evaluate the technical and non-technical merits of hybrid versus alternatives like web and native – especially as it relates to your mobile application's requirements. For example:

  • Which mobile platforms do you wish to target?
  • Do you want to distribute your application via app stores?
  • Are you looking to utilize the capabilities of the mobile device?
  • What are the technical abilities of your development team?
  • Does the one-size-fit-all approach of hybrid really live up to its promise?

These and other questions are worth asking before embarking upon development of a mobile application. To elaborate on this, let's examine a few of these questions in more detail.

Which mobile platforms do you wish to target?

If you wish to target more than one platform, you have a number of choices. Clearly, the web offers a highly attractive solution for this requirement. Your target is the mobile browser. Hybrid lends itself well to this approach as well because of its reliance upon the WebView.

Native – on the other hand – finds itself in a unique space. If you are reliant upon the vendor SDKs and platform-specific programming languages then you are essentially coupled to the platform. In the case of iOS, it's Objective-C or Swift; for Android, it's Java; and for Windows Phone, it's C#. It should be noted that native deliverables can built using cross-platform technologies like Xamarin, React Native, and NativeScript.

Do you want to distribute your application via app stores?

If you want to distribute your application via an app store, you must build a hybrid or native application. You cannot distribute websites through app stores; that's what your browser's address bar is for! Despite this restriction, whether you build a hybrid or native application, it's highly recommended that you have a website available for your mobile application. This will be the first place your users will expect to go if/when they encounter problems.

Are you looking to utilise the capabilities of the mobile device?

Websites have a restricted set of abilities as opposed to hybrid and native applications. These restrictions are enforced by browser, effectively sandboxing it away from the mobile operating system. Recent developments with mobile browsers have exposed more device capabilities through HTML5 such as the camera, geolocation, and others.

Despite these advancements, support for advanced functionality is quite limited. For example, media capture and streaming remains unsupported in various mobile browsers. Because limitations like this remain in mobile browsers, many developers are compelled to evaluate hybrid and native as alteratives. Both offer the ability for developers to access device APIs – in the case of hybrid, this ability is supported through plug-ins.

It's often asserted that native is best suited for applications where graphics performance is paramount. Mobile games are a class of mobile application almost entirely reliant upon complex visual interactions on the screen. Even if a game operates flawlessly from a functional perspective, you should expect it to have a very low app store rating if it feels slugglish. For that reason, developers have long-argued against using hybrid as an approach to build games.

That stated, a number of solutions for hybrid mobile applications exist. These include HTML5 Canvas and WebGL, both of which are well-suited for building applications like games. Furthermore, technologies like these are more approachable for developers through libraries like Paper.js, EaselJS, and others. And it's not just for game development. For developers building more traditional, line-of-business applications, there are frameworks like Famo.us and Kendo UI.

What are the technical abilities of your development team?

Another factor to consider when evaluating your development options for mobile is your team's technical abilities. If you decide to build a native application, you will require developers who are experienced with the platform SDKs and programming languages of every platform you wish to target. On the other hand, web and hybrid applications are built using web technologies like HTML, CSS, and JavaScript. You can have a team that can target multiple platforms with a single set of technologies. This is something worth considering when evaluating your opinions.

Does the one-size-fit-all approach of hybrid really live up to its promise?

Finally, it's important to recognize that hybrid isn't the be-all and end-all approach for mobile application development. Earlier in this article, I cited the challenge of overcoming the inconsistencies between WebViews. Other challenges remain. In fact, with hybrid, you can find yourself targeting the features of a mobile platform only to discover that they're inaccessible because the plug-ins for them are out-of-date, unreliable, or (even worse) missing altogether. In this scenario, you are faced with the dilemma of either removing an application feature or writing the plug-in yourself.

This scenario is more pronounced when new versions of a mobile platform are introduced. If you wish to leverage these new capabilities, you either have to wait for someone in the community to write the plug-in or develop the plug-in yourself. My advice is to know what plug-ins are available and reliable before proceeding with development.

Who is building hybrid apps?

There are a number of well-known hybrid mobile applications available in app stores. Some of my favorites include Basecamp, Instagram, Yelp, Untappd, and SydJS. If you're looking for more examples, you can check out the showcases for PhoneGap, Ionic, Telerik Platform, and AppGyver. They list applications that cover a wide range of categories, including line-of-business applications, games, and more.

Start Your Journey with Telerik AppBuilder

If you're curious to learn more about hybrid application development, I would encourage you to check out Apache Cordova, build a prototype, and evaluate the results for yourself. I would also recommend checking out Telerik AppBuilder. It offers solutions to many challenges that crop up in the world of mobile application development. It's an environment that can integrate with many popular IDEs like Visual Studio and Sublime Text, and it has a number of project templates to get you up & running quickly.

The thing to remember about hybrid mobile application development is that it's not a single approach; rather, it's a spectrum of options ranging between web and native. Determining if it's the right choice for you requires evaluating the options presented in this article.

Real-time Web Applications with Kendo UI and Firebase

Building apps is hard; building real-time apps (that also scale) is much harder. There are many reasons why this is the case. Suffice to say, it's a pretty gnarly problem. Even the concept of "real-time" in software can be difficult to understand at times:

Over the past year, I've been playing around with Firebase, a service for building real-time applications quickly. Recently, I wanted to see how I could integrate it with other frameworks/libraries that I use in my development. As a fan of both Firebase and Kendo UI, I was compelled to build my peanut butter and chocolate scenario; two great tastes together as one. The end result was kendo-fire, a set of bindings for building applications that utilize Kendo UI and Firebase at the same time.

Firebase

Firebase is a scalable back-end service and a set of lightweight, real-time, client-side libraries that enable you to quickly store and synchronize your data. The end result is a solution that addresses some of the hardest parts of building real-time applications. From a developer's perspective, Firebase is a fantastic experience. You simply focus on your data and Firebase, for the most part, takes care of the rest. For a quick primer on how Firebase works, check out How Firebase Works.

Writing a Custom RemoteTransport for Kendo UI

The Q1 2014 release of Kendo UI added support for real-time data through the introduction of a set of push callbacks to the kendo.data.RemoteTransport. Currently, Kendo UI supports WebSockets and SignalR out-of-the-box. However, this functionality can easily be extended to other protocols and providers, like Firebase, through a custom RemoteTransport. Please refer to kendo.data.js from Kendo UI Core to review the implementation of the RemoteTransport.

The RemoteTransport exposes functions for performing CRUD operations against a remote endpoint:

var RemoteTransport = Class.extend( {
  options: { ... },
  init: function (options) { ... },
  setup: function (options, type) { ... },
  create: function (options) { ... },
  read: function (options) { ... },
  update: function (options) { ... },
  destroy: function (options) { ... },
  push: function (callbacks) { ... }
  ...
});

Writing a custom RemoteTransport is fairly simple via $.extend():

kendo.data.transports.firebase = kendo.data.RemoteTransport.extend({
  // your implementation
});

Once defined, you can use it with the kendo.data.DataSource as follows:

var dataSource = new kendo.data.DataSource({
  // ...
  schema: {
    model: {
      // ...
    }
  },
  transport: {
    firebase: {
      url: "[firebaseURL]"
    }
  },
  type: "firebase"
});

Handling Push Events from a Remote Endpoint

Events from the remote endpoint are processed by callbacks registered in the push() method. Here's an example of the boilerplate necessary for Firebase:

push: function (callbacks) {
  this.ref.on('child_added', function (childSnapshot, prevChildName) {
    // process new items from Firebase
    callbacks.pushUpdate(model);
  }, function() {}, this);

  this.ref.on('child_changed', function (childSnapshot, prevChildName) {
    // process changed items from Firebase
    callbacks.pushUpdate(model);
  });

  this.ref.on('child_moved', function (childSnapshot, prevChildName) {
    // process moved items from Firebase
    callbacks.pushUpdate(model);
  });

  this.ref.on('child_removed', function (oldChildSnapshot) {
    // process deleted items from Firebase
    callbacks.pushDestroy(model);
  });
}

Firebase client-side APIs operate against references (i.e. this.ref), which are addressable endpoints to your data. References define a number of events that you can handle. These include child_added, child_changed, child_moved, and child_removed. These operations map to the CRUD operations performed against your data. Additionally, Firebase provides context to these events through snapshots, which contain a name (i.e. its identifier) and a value (i.e. the data).

Putting It All Together

I've published an example on CodePen that uses Firebase with the original implementation of our TodoMVC submission for Kendo UI. It's fun to watch!

Of course, there are many other kinds of applications you can build. Recently, I forked Burke Holland's (excellent) dashboard built with Kendo UI, data visualizations, and AngularJS and combined it with live data from Firebase:

You can see this running on CodePen as well.

Other examples include chat applications for mobile devices. Here's one I'm currently working on that uses Kendo UI Mobile with Firebase as the underlying backend:

Real-time applications can be a lot of fun to build, especially when you have a great stack at your disposal like Firebase!

Wrapping Up

Building real-time applications can be a challenge. However, services like Firebase make them a lot less daunting. Combined with Kendo UI through bindings like kendo-fire, you've got a great combination for building some amazing applications. Why not check it out for yourself? Sign up for a trial account for Firebase and start building some real-time applications today!

Get Your Hands Dirty with the Kendo UI Scratchpad

Earlier today, Brandon Satrom announced the Q1 2014 Beta release of Kendo UI. It's definitely worth checking out.

Something you may have missed is a feature we've added to the Kendo UI site called the Kendo UI Scratchpad. It's a JSFiddle-esce environment for getting your hands dirty with Kendo UI:

The (new) Kendo UI Scratchpad!

The (new) Kendo UI Scratchpad!

It's especially worth noting that we've also provided the ability to edit every example we have for our Kendo UI demos:

Note: "Edit this example" is new here.

Note: "Edit this example" is new here.

See the "Edit this example" button (above)? Click that and you'll be taken to the Kendo UI Scratchpad to fiddle around with the demo.

Nice, eh? Go check it out for yourself.

The Telerik Platform: Accelerating Your App Development Lifecycle

The Telerik Platform helps you manage the complexity of mobile application development. It does this through a modular platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native apps. For a general overview of the Telerik Platform - including our motivations for building it - I'd recommend reading Todd Anglin's (excellent) blog post entitled, Telerik Platform 101.

In this blog post, I'll highlight how the Telerik Platform helps to address critical phases of your mobile application development lifecycle -- especially as it pertains to cross-platform development.

Cross-Platform Mobile Application Development

Cross-platform mobile application development can be a complicated process. The white-hot demand for mobile apps, coupled with the ever-increasing pace of change that's occurring in mobile, can make some developers feel overwhelmed as they try to keep up.

Development teams operate efficiently and effectively when they incorporate tools that help - not hinder - workflow. In order to address the challenges you face when targeting mobile application development, you need a development platform that can keep pace with the mobile industry; a platform that helps you manage the complexity of mobile application development, but is modular to be easily integrated into your team's existing development workflows.

Enter the Telerik Platform.

Design

The design phase is one of the most collaborative phases of the application development lifecycle. In this phase, your team will define a lot of your application's functions and operations in detail. They will iterate upon a number of artifacts such as the application interface. The Telerik Platform provides a collaborative environment for seamless prototyping and design.

With Telerik AppBuilder, you can create interactive UI prototypes with an intuitive drag-and-drop visual designer. This feature is supported through an in-browser client:

Telerik AppBuilder: Code-Designer Split

Alternatively, you can author these UI prototypes in a Windows client and an extension for Visual Studio.

The UI prototypes you design can be viewed by other members of the workspace. Any changes made can be easily synchronised between clients. Furthermore, these changes can be committed to a repository. From there, your team can iterate against these designs, propose changes, implement new designs, etc.

Build

A critical factor to the successful delivery of any project is identifying opportunities to improve your team's overall efficiency. In the world of software development, these efficiencies are realised through the tools we use. They can be extremely beneficial to developers because they can automate tasks and/or processes that can produce in valuable feedback to the team (i.e. continuous integration). However, without the necessary skills or experience, the tools you use to build mobile apps can quickly become a burden to manage, especially when targeting more than one platform. The cross-platform development tools of the Telerik Platform eliminates some of headaches associated with this phase of your app development lifecycle.

Note: For a detailed overview of our UI controls for native, hybrid, and web applications, please check out Philip Japikse's blog post entitled, A User Interface For Any Approach.

A critical aspect of any software development project is managing your code with a robust version control system. This is built into Telerik AppBuilder and supports features such as change management, history, and conflict resolution:

Telerik AppBuilder: Version Control

You can also configure a remote source repository, including GitHub!

Telerik AppBuilder: Remote Source Configuration

Complementing the code/design experience is the built-in device simulator that enables you to run your app is an environment that mimics many hardware characteristics of a device:

Telerik AppBuilder: Device Simulator

Mobile platform vendors provide SDKs and include tools for building applications. Coordinating these tools to work as an orchestrated build process can be a daunting challenge. Telerik AppBuilder cloud services manages all the platform dependencies for you, so you can focus on development. No need to download, configure and manage multiple development environments and numerous SDKs. Telerik AppBuilder handles it all for you through a remote build service for deployment to test device or for deployment to app stores.

Telerik AppBuilder: Remote Build

Developers continuously test their applications through a runtime environments such as a simulator or device. Telerik AppBuilder can speed up your development through LiveSync, which lets you make changes to the project in the code editor and see those changes applied in real time in the simulator and across devices.

Connect

Mobile applications face some unique challenges when it comes to connecting to back-end data and services. Unlike "traditional" applications like those targeting the desktop, mobile applications must deal with a dynamic environment of interruptions (i.e. incoming phone calls), high latency, and variable signal strength. Moreover, these applications must play within the confines of a much more restrictive sandbox; the memory and network constraints imposed by mobile platforms force developers to re-think the way applications are architected.

Telerik Backend Services provides a rich, comprehensive set of services to manage your mobile application's data and users. These services also extend your capabilities in the cloud by exposing rich, custom logic to intelligently manage your back-end data.

Note: To understand the motivations behind Telerik Backend Services, please check out Jim Holmes' blog post entitled, Cloud for the Entire Lifecycle.

Telerik Backend Services

With the Telerik Backend Services, you can mobilize your existing data with our standard (web) and custom connectors, which saves you time to develop your mobile applications. Additionally, we have out-of-the-box user management, authentication and push notifications. These and other services provide you turnkey implementations of design patterns that are widely employed by mobile applications today.

Testing

It's common practice to integrate testing throughout all aspects of development. However, mobile application testing is fraught with complexity. The capabilities of devices and their development platforms are constantly evolving to adopt consumer demands. The Telerik Platform helps you manage this complexity through Telerik Mobile Testing, an automated cross-platform mobile testing capabilities.

With Telerik Mobile Testing, you can create and execute web, hybrid, and native tests across range of platforms, including Android and iOS. Our test runner infrastructure is built on Node and provides detailed diagnostics:

Telerik Mobile Testing

Our test infrastructure features a small set of web-friendly system requirements:

  • Tests are authored in JavaScript
  • HTTP and WebSockets forms the communication channel with JSON-formatted commands
  • Android and iOS apps available for native testing (Google Play and the Apple App Store)
  • PhoneGap/Cordova plugin for hybrid testing

Once your tests are written, you can execute them remotely via the CLI or web-based interface:

Telerik Mobile Testing

Test execution and their results are synchronised with the test runner. This includes tests against native apps (including those running in simulators):

Telerik Mobile Testing (In Action)

Once you've executed your test, you can share the results with the rest of your team by publishing them to the Telerik Platform:

Telerik Mobile Testing (In Action)

All goodness.

Deployment

Ah, deployment. It's probably one of the more exciting phases of your software development lifecycle. Just ask ten different people in DevOps what deployment can be like and you'll end up with ten different answers.

Deploying to mobile platforms can be terribly cumbersome and error-prone. Certificates must be requested, code must be signed, devices must be provisioned — all of which is required for local deployment. (This doesn't cover submitting to an app store for review!) Moreover, you'll find that mobile platforms have differing software requirements. Generally-speaking, you need Xcode to target iOS, Eclipse to target Android, and Visual Studio to target Windows Phone — hybrid and cross-compilation tools notwithstanding.

The Telerik Platform can help you manage much of the complexity that comes with deploying to one than one mobile platform.

Telerik AppBuilder: Publish

It provides a streamlined system to publish your apps to devices and app stores. You can have apps packaged and ready for publishing in seconds. From there, you can publish to public and enterprise app stores or deploy to iOS and Android without the need for provisioning.

Management

Ask any mobile developer the joys of managing provisioning profiles or cryptographic identities. It's a non-trivial exercise. Everything from navigating device requirements to setting up a developer account appears designed to prevent you from making apps. The Telerik Platform provides an integrated cross-platform management story to help eliminate some of this pain. that enables you to securely deploy public, private, and web apps to your enterprise app store.

The Telerik Platform: Manage

Managing enterprise users and devices is done through the cloud admin console. From there, you can add and remove users, assign permissions, and delegate roles:

The Telerik Platform: Manage

Measure

Measurement is the first step that leads to control and eventually to improvement. If you can't measure something, you can't understand it. If you can't understand it, you can't control it. If you can't control it, you can't improve it. -- H. James Harrington

Mobile application analytics are one of the most valuable sources of information to a development team because they help measure an application's usage and runtime performance in a real-world setting. And yet, far too often, development teams choose not to instrument their mobile applications to gather this information. It's not because they don't care; rather, it's often because they lack the means to do so; they are missing the infrastructure that's necessary to collect, manage, and analyze these analytics in a quick and efficient manner.

Too often, developers lack insight into the kinds of users they have and the devices they use. Even worse, they can't ascertain the most used features and the most encountered errors being hit in the wild. Telerik Analytics provides all this information (and more) in real-time to give developers the much needed insight that will help them improve their apps.

The Telerik Platform: Accelerating Your App Development Lifecycle

With Telerik Analytics, you can gain an understanding of users and and the way they interact with your mobile applications. This is accomplished by enabling you to better gauge your user base by collecting usage and demographic data. As your mobile application is used, an integrated monitor captures analytics pertaining to a wide range of criteria, including the application's performance, geographic location of users, and feature usage. These metrics are centralised through a data management interface that also includes data aggregation, filtering, exporting and alerts.

Wrapping Up

Feeling overwhelmed? Don't worry. While the Telerik Platform sounds big and all-encompassing, it's modular by design; like a buffet table, you can help yourself to as much or as little as you need. With the Telerik Platform, you can address all aspects of the app development lifecycle, or only those most relevant to you.

The next step in your journey of discovery is to sign up for your free, 30-day trial (with dedicated support) of the Telerik Platform. Once you've established your account, you'll have full access to explore all of the capabilities that the Telerik Platform has to offer.

Thank you for creating a Telerik account

Finally, to learn more about the Telerik Platform, you'll want to visit Mobile Apps Are Dead to register for the launch keynote of the Telerik Platform. Seriously. It's going to be awesome. Join us and be among the first to discover the new way of developing lasting, compelling cross-platform, multi-device app experiences that will change mobile development for the better.

Respond 2014

Last week, I attended Respond 2014 in Sydney.

This one-day conference was organised by the super-awesome folks from Web Directions and was described as “a festival of Responsive Web Design for designers and developers of the multi-device Web”. It featured a number of prominent folks from the RWD community from Australia and overseas, including Ethan Marcotte and Jason Grigsby.

Left-to-Right: Jason Grigsby, Ethan Marcotte, John Allsopp

Left-to-Right: Jason Grigsby, Ethan Marcotte, John Allsopp

Even though I have a vast experience with RWD, I felt like somewhat of an imposter. It had been a while since I had hacked against media queries, fumbled with grids, or dabbled with responsive images. Compounding this problem was the fact that this was my first time attending a conference dedicated entirely to RWD.

Despite all of this, I felt right at home at this conference. The speakers did an amazing job bringing folks along with the materials and concepts presented. Furthermore, I learned quite a number of new things along the way.

Jason Grigsby (@grigs) at Respond 2014 Photo credit: https://twitter.com/StamfordUX/status/430835933487693824

Jason Grigsby (@grigs) at Respond 2014

Photo credit: https://twitter.com/StamfordUX/status/430835933487693824

One of my favourite presentations was by Jason Grigsby who spoke about responsive mobile-first design.

I think Jason provided a lot of solid advice when it comes to tackling responsive mobile-first design. Of particular interest to me was his insights on the state of responsive images. Of the many solutions available, I found Picturefill - a polyfill for the picture element - to be the most practical for helping to address responsive images.

Polyfills: is there anything thing they can't do?

A little later in the day, John Allsopp delivered a presentation entitled, Well, How Did We Get Here? which I found particularly interesting. John invoked nostalgia by taking the audience on a trip through the world of Web development in the 1990s. I remember those days quite well. So many hacks.

John Allsopp laments about the past

John Allsopp laments about the past

John's presentation was excellent because it provided some context around the theme of the day; responsive web design.

I will admit that I started to feel bad for John after 20 minutes into his presentation. He's seen far too many things in the Web development days of old. Naturally, this prompted me to quip the following on Twitter:

Rounding out the day was Ethen Marcotte's presentation entitled, The Map and The Territory. He delivered an interesting presentation that talked about RWD and the future challenges we face globally as more and more third-world countries come online.

All in all, I had a great time at Respond 2014. I learned a great deal and would be very tempted to attend the conference if held next year!

Melbourne Mobile (January 2014)

Melbourne Mobile.jpg

Last week, I delivered a couple of presentations to the fine folks at Melbourne Mobile. As always, it was a hoot! Here's a quick rundown of what I spoke about:

phones.gif
simpsons-mobiles-in-classroom.gif
  • Mobile Application Development with Sitefinity Telerik Sitefinity is a content management system that offers numerous capabilities for developers targeting mobile. It provides a platform that enables you to target responsive design & layout challenges. It also can support hybrid application scenarios. This session will cover the fundamentals of both approaches (responsive design and hybrid) and demonstrate how Sitefinity can help you target them.

  • Application Analytics for Mobile Developers The process of measuring your mobile applications is vital to understanding how they are used in the wild. Without this data, it’s difficult to improve your applications in an effective manner. This session will highlight the importance of application analytics and provide you with practical information about what to capture and how to capture it. It will also provide an overview of solutions available to developers to help support the capture of these analytics.

My presentation had less to do with the use of Sitefinity as the underpinning platform and more to do with the development strategies you have when building mobile apps. In that sense, Sitefinity is a means to an end. It does a very good job at making developer productive when targeting mobile.

Andrew Marsland (centre left) holds court with members of Melbourne Mobile

Andrew Marsland (centre left) holds court with members of Melbourne Mobile

Tommy-Carlos Williams

Tommy-Carlos Williams

Front and centre at Melbourne Mobile

Front and centre at Melbourne Mobile

Unforunately, during my presentations, my Internet connectivity entered the Zone of Suck and I had a lot of problems trying to get pages to resolve quickly.

On the whole, the content was solid, particularly the one focusing on application analytics via EQATEC. I did (however) spend quite a bit of time talking about the spectrum of approaches available to developers when considering mobile. That is, from native to hybrid to web. Along the way, I provided a bunch of links to third-party tools worth checking out including:

SydJS - January 2014

BeAs3YACYAA4o6B.jpg

On Wednesday, I travelled to Sydney to speak at the January meeting for SydJS, Sydney's super-awesome group for JavaScript developers. SydJS is organised by some really great folks and it was quite humbling to be amongst the other speakers scheduled for the night.

First up was Hourann Bosci who spoke about a number of mapping solutions for developers. These ranged from Google Maps to Bing Maps and others. His personal preference was to leverage Leaflet, which is "a modern open-source JavaScript library for mobile-friendly interactive maps."

logo.png

From the Leaflet website:

Leaflet is designed with simplicity, performance and usability in mind. It works efficiently across all major desktop and mobile platforms out of the box, taking advantage of HTML5 and CSS3 on modern browsers while still being accessible on older ones. It can be extended with a huge amount of plugins, has a beautiful, easy to use and well-documented API and a simple, readable source code that is a joy to contribute to.

Hourann demonstrated how to integrate data into Leaflet through the use of layers that leverage D3.js for SVG. He did this by superimposing word clouds with data from the SydJS website on to a map of the Sydney CBD.

Next up was Tom Walker who blew up my brain with his project, Cognizance, which is currently unavailable but it slated to be released very soon. It's a combination of an event-driven backend that powers a sexy dashboard front-end that has a number of widgets from a variety of data sources including Trello, GitHub, and others. The UX is really nice; it's motivated by split-flap displays you see at airport terminals or railway stations.

Much like the matrix, you cannot be told what Cognizance is... you have to see it for yourself. Let me put it this way: this was my reaction:

mind-blown.gif

Dashboards can be wonderful at conveying information quickly. And while many of the solutions I've built or seen often suck in the UI/UX department, Cognizance certainly does not.

I found the backend architecture and eventing strategy that underpinned Cognizance quite interesting. Due to time constraints, Tom wasn't able to go into great detail about it. From what I gathered, Tom has devoted a considerable amount of thinking into the performance and scalability of his solution - particularly for mobile.

I am eager to learn more. That's for sure.

Photo credit: https://twitter.com/nolim1t/status/423382160439926784

Photo credit: https://twitter.com/nolim1t/status/423382160439926784

The weirdest point of the night came about when Joseph Gentle did a lightning talk on a project they've been hacking on that provides the ability to create virtual circuits. It's called boilerplate and is described as "a multiplayer steam-based CPU simulator". While the idea of a CPU simulator isn't particular out of the ordinary, the use of steam power to simulator one certainly is.

boilerplate is difficult to describe. Essentially, they use a 2D canvas to position elements that exhibit fluid mechanical properties. (I know, I know. Bare with me.) By placing these elements on the canvas, they are able to construct primatives such as OR and AND operation gates. Composing these primatives together, they were able to build some rudimentary circuits.

If anything, the presentation provided some comic relief. A few jokes were thrown out by the audience. Being no stranger to making a jackass of myself, I shouted out that they were missing a turbo button.

Screen Shot 2014-01-16 at 2.38.21 pm.png

My presentation covered Polymer, a framework for building Web Components through a set of polyfills for specifications like Shadow DOM, HTML Imports, HTML Templates, and Custom Elements. I felt like I did a reasonable job covering the motivations behind Web Components and how Polymer is striving to bring them to evergreen browsers today.

For my demo, I decided to get away from the high-level messaging of Polymer and to work simply within the confines of JSBin. I demonstrated how to create a custom element from scratch. From there, I showed how features like data-binding and events operate in Polymer.

Eric Bidelman is a Developer Advocate for Google who's been championing the project for a while now and he's posted a number of excellent presentations to YouTube. He's also posted a number of great presentations to html5-demos.appspot.com. They are well worth your time to check them out if you're wanting to hear more about the future of front-end web development through Web Components (and Polymer).

To me, Web Components (and Polymer) are great steps towards getting some control over our front-end development because - let's face it - it's a bit of a mess at the moment. That stated, I did openly share some questions I have considering things like the metadata story, the security model, the overall performance, etc. Nevertheless, it is exciting to see where all of this stuff is going.

Another month, another great meeting of SydJS. If you find yourself in Sydney and you're looking for something to do on a Wednesday night, why not make the effort to hang out with some of your fellow JavaScript developers? They're a friendly bunch of folks. If anything, the free beer and pizza are reason enough to go!