Age of Mobility

AzureChatr: Building a Cross-Platform Chat App for Windows, iOS & Android

AzureChatrBlogBanner1280

by Nick Landry (last updated on 10/7/2014)

Have you ever witnessed a big news announcement about some mobile app or website being acquired for millions (or billions!) of dollars, only to tell yourself:

Wow, that’s a lot of money, and to think that I could have been the one to build that!

This is exactly how I felt when WhatsApp was purchased by Facebook for a whopping 19 BILLION dollars earlier this year. Why? Because like all of you, I have technical skills and I know how to build apps, and I knew I could have built that app. It seems that chat/messaging apps are all the craze now. Microsoft got things going early when Skype was acquired back in 2011 (though Skype is so much more than just a chat app). Yahoo just acquired MessageMe, and now Google is apparently building their own too. So what am I to do here? Admit that it’s too late or challenge myself?

I decided I would prove it to myself. I decided to build a cross-platform chat app that lets people on Windows, iOS and Android chat with each other. I knew it wouldn’t be that hard because I have a (not so) secret weapon called Microsoft Azure. My goal is ultimately to show everyone how easy it can be to build cloud-powered mobile apps, no matter if you are a Windows, iOS or Android developer using C#, Objective-C or Java. What better way to do this than to build a live app, and then share the source code with the community as I blog about the internal “how to’s”?

AzureChatrWideBanner874

Introducing AzureChatr: A Chat App Powered by the Cloud

AzureChatr (pronounced “Azure Chatter”) is a cross-platform chat client that I now use to demonstrate mobile development techniques with a cloud backend using Microsoft Azure. While AzureChatr can be used to chat about anything, the intent of the app is to bring users together to talk about cloud development. Last June I shipped the initial beta release of AzureChatr for Windows Phone 8.1. AzureChatr will soon be available on Windows 8.1, iOS and Android too. The cool thing is you do not have to wait until I publish AzureChatr on the other platforms. You can find the source code for Windows, iOS and Android below.

AzureChatr lets you chat live in real-time with other users in a global chat room. You do not need to invite anyone, it’s just a big central meeting place (for now). There is currently no support for private chat and all conversations should be considered public

PRIVACY NOTICE: All chat conversations are saved in the cloud for history purposes. Chat conversations should be considered public but will not be distributed to any third parties or used for any other purposes than displaying conversations in the app. Do not divulge any private or confidential information in AzureChatr.

AzureChatr Features

The current version of AzureChatr is certainly not as full-featured as WhatsApp or other popular chatting apps. My goal is to keep adding features over time and document their implementation at the same time here on my blog.

Common Features: Windows, iOS, Android

  • All chats are posted in a global public chat room. There is no private chat yet.
  • Send chat lines to the cloud and save them in Azure Mobile Services.
  • Receive chat lines from the cloud via push notifications (i.e. WNS, APNS, GCM).
  • Display new chat conversation items as toast notification / popup alerts when the app is not running. Tapping the toast / alert launches the app.
  • Integration with the Action Center / Notification Centers on Windows Phone, iOS and Android.
  • Support for Portrait or Landscape orientation.

It should be noted that there is currently no built-in way to mute or disable the notifications. This is obviously an upcoming feature. The only way to mute the notifications is either to disable them in your phone settings where allowed, or uninstall the app.

Extra Features in the Universal Windows version

Since the Windows Phone 8.1 version is already live in the store, there are additional features I’ve already added to polish the app a bit more for public use. Though the Windows version is not live yet, some features have already been integrated should you play with the source code yourself. This is because the Windows and Windows Phone versions are built as a Universal Windows app that virtually shares 100% of its source code. The extra features already available in this version are:

  • Integrated login with default Microsoft Account on the device.
  • AutoScroll the chat window down after each new chat entry is posted.
  • Multiline text entries with wrapping.
  • Only retrieve the last 20 entries on app startup / refresh.
  • Added an extra Send button when using the Windows version since the default send button in the app bar is not visible by default.
  • Send chat line on ENTER key in Windows for mouse & keyboard users.

Upcoming Features

Other than bringing the iOS and Android to parity with the Windows version, I already have a long shopping list of features that I plan to eventually add to AzureChatr across all versions.

  • Display time stamps on individual chat items.
  • Support for additional chat rooms by topic, and private chat rooms where you can invite your friends.
  • Access the chat log history by scrolling back.
  • Speech synthesis integration to hear what your friends are saying without looking at the app.
  • Voice command activation with Cortana (on Windows Phone).
  • Display user profile images and allow users to provide additional profile data in the app.
  • Customize the UI such as font sizes, colors, etc.
  • Support for hyperlinks and emojis in chat.
  • Support for posting images in chat.
  • Muting notifications when you don’t want to be disturbed.
  • Authentication via Twitter, Facebook and Google+.
  • Allow users to “Like” someone else’s post.

And this is just a partial list. I have a lot more in my backlog. Feel free to post your own suggestions in the comments section below. Note that AzureChatr is not something I’m working on full-time. I’ll bang out some code and keep adding features when I find time, but do not expect this to because the be-all-end-all of all chat apps anytime soon.

AzureChatrStoreBanner

Download the AzureChatr App

Wanna try the app? So far I have only published the Windows Phone 8.1 version of AzureChatr. The others will come soon enough.

  • Download AzureChatr for Windows Phone 8.1 (Note that this is currently a BETA release only available to a few countries: USA, Canada, UK, Ireland, Australia, India and Finland).
  • Download AzureChatr for Windows 8.1 (coming soon)
  • Download AzureChatr for iPhone & iPad (coming soon)
  • Download AzureChatr for Android tablets & phones (coming soon)

I’ll be sure to update this blog post as the other versions become available, and also when I add additional features to the app. Of course, the whole goal here is to learn how to build this yourself or how to add similar features to your own apps, so keep on reading to discover what goes on under the hood.

AzureNotificationHubBanner

AzureChatr: Under the Hood

AzureChatr has a lot of moving parts and this section will host links to several blog posts that dissect specific aspects of the AzureChatr components, including the following:

  • AzureChatr client for Windows and Windows Phone
  • AzureChatr client for Android
  • AzureChatr client for iOS
  • Cloud components, including Azure Mobile Services, Authentication Services and Notification Hubs

You can get started by watching this video interview about AzureChatr from the Visual Studio Toolbox show on Channel 9. It features the show host – Robert Green – and myself geeking out over how AzureChatr was built, what it does, and how Azure powers it all.

Bookmark this page and stay tuned as blog more about AzureChatr. All the links will be added here.

Dive Into the Source Code & the Azure Services

Before you download the source code for any of the AzureChatr versions, you have to create a Microsoft Azure account and configure the appropriate Azure services for table storage via Mobile Services, authentication via Microsoft Account, and push notifications via Notification Hubs.

The following links will help guide you through this process, including several tutorials from the Azure documentation.

Obtaining a Microsoft Azure Account

Setting-up the Required Azure Components

  • Create a new Mobile Service for your version of AzureChatr. You can use the tutorial here to learn how to get started but all you need is to create the mobile service by picking a name, selecting/creating a SQL database, picking a region affinity, and selecting the desired backend (JavaScript/Node or .NET). My version of AzureChatr uses JavaScript so if you want to use the same server-side code that I am sharing with you, you should pick JavaScript. Note that you do not have to repeat this step for the 3 clients. There is only one Mobile Service commonly used by the Windows, iOS and Android clients.
  • Follow the same tutorial to create a new table called ChatItem.
  • Authenticate your Windows app with Live Connect single sign-on: Follow the steps in this tutorial to register your app for the Windows Store, restrict permissions to authenticated users and install the Live SDK for Windows. Note that in the current implementation of the code, the iOS and Android versions do not yet support authentication. The authentication code has already been added to the Universal Windows app.
  • Please refer to the README.MD file in GitHub. There is a version for each of the 3 client versions. It contains a block of code you need to edit the ChatItem table Insert script.

Source Code Links in GitHub

The source code for all three versions of AzureChatr is available in my GitHub repo under the following links:

  • Source code: Windows Clients for a Cloud-based Cross-Platform Chat App for Windows Phone and Windows Tablets, Laptops and Desktops. Written in C# as a native Universal app using Visual Studio.
  • Source code: Android Client for a Cloud-based Cross-Platform Chat App for Smartphones and Tablets. Written in Java as a native app using Eclipse. This is just a basic prototype for now and is not ready for publication to the Google Play Store.

    Source code: iOS Client for a Cloud-based Cross-Platform Chat App for iPhone and iPad. Written in Objective-C as a native app using Xcode. This is just a basic prototype for now and is not ready for publication to the Apple App Store.

You’re probably wondering why I chose the “silo approach” to build these 3 versions. After all, building the 3 versions with 3 different languages, 3 different SDKs and 3 different IDEs is basically the hardest way possible. Personally I would have preferred to use Xamarin to build a cross-platform app and share as much code as possible. But I felt it was important to stick with the native tools already known by the developers indigenous to each mobile ecosystem.

Feel free to use the source code in your own apps. This is why I’m posting my source here, I want you all to learn how to use Azure for such online apps. You can use it to add chat capabilities to other domain-specific apps, or even to your own games. If you intend to simply create another “competing chat client”, that is fine too. All I ask is that you extend the code with your own ideas and features – make it your own (not just a clone) – and publish your chat apps under a different name of your own choosing (i.e. NOT AzureChatr).

If you have questions about AzureChatr, any of the mobile versions discussed here, the features, source code, design decisions or if you need help standing-up your own Azure services to support your own chat features, you can post them in the comments below, or you can ping me on Twitter at @ActiveNick.

Ultimate Guide & FAQ to Setting-Up a Windows Phone Development Environment

VS2013-WP81-HelloWeather

by Nick Landry (last updated on 9/22/2014)

Mobile development is full of exciting opportunities, but setting-up your development environment can sometimes be a challenge depending on what your current hardware is, and what mobile platform you want to target. I work with a lot of developers at hackathons, workshops and meetups, and helping developers get started with Windows Phone development is a part of my day to day.

The goal of this post is to be a one-stop shop for any developers getting started with Windows Phone development to help them prepare their development environment using either free tools or using their current Visual Studio setup. For most developers using a recent Windows computer, installing the Windows Phone developer tools will be a breeze accomplished through a one-step process. But for other developers using legacy hardware, a lot of questions arise as to whether or not their current machine is up to snuff to run the Windows Phone SDK. I’ll try to address most of these questions I’ve been getting over the last couple of years. If there are important questions I am missing, feel free to ask them in the comments below and I will do my best to amend them in this post.

How much are the Windows Phone Dev Tools?

Totally free! You can install a single package called Visual Studio Express 2013 with Update 3 for Windows completely for free and you will get the following all at once:

  • Visual Studio 2013, the premier Integrated Development Environment (IDE)
  • Windows Phone 8.1 SDK (to build apps for Windows smartphones)
  • Windows 8.1 SDK (to build Windows Store apps for Windows tablets, laptops, hybrids & desktops)

To learn more about developing apps by using Visual Studio 2013, refer to the official documentation here.

I want to install the Windows Phone dev tools now. Where is the link?

Download the Windows Phone tools here. Remember to choose Visual Studio Express 2013 with Update 3 for Windows (NOT the version “for Windows Desktop”). Check out the requirements below first to make sure you have all you need.

What do I need for Windows Phone development?

The following lists the requirements to install the Windows Phone SDK:

  • Operating System: Windows 8.1 (x64). To run the Windows Phone Emulator, you’ll need Windows 8.1 Pro.
  • Processor: 1.6 GHz or faster
  • Memory: Your machine should really have no less than 4GB of RAM, and I definitely would recommend 8GB or more if your machine allows it
  • Storage: 11 GB of available hard disk space on a 5400 RPM hard drive. I highly recommend getting a fast hard drive (10K RPM) or a Solid State Drive (SSD)
  • Video: DirectX 9-capable video card running at 1024 x 768 or higher display resolution

There is one exception to the 64-bit rule. You can use a Windows 8.1 32-bit (x86) development machine to build Windows Phone 81. (but not 8.0) apps if you do not intend to use the emulator and debug your apps exclusively using an external Windows Phone device connected over USB.

To learn more about the requirements for Windows Phone 8 development, refer to the official documentation here.

What about Windows Store apps for tablets, Surface & desktop?

That’s an easy one. All the instructions provided in this blog post automatically give you the dev tools you need to build Windows Store and Universal apps. Universal apps let you share over 90% of your code when building apps for the phone, tablets, hybrids, 2-in-1’s, notebooks, laptops and desktops (and Xbox too in the near future). Note that I am spending extra time in this blog post on the Windows Phone side of things due to the extra requirements of the Windows Phone emulator.

Why is Windows 8.1 required?

Simple, because the core operating system for Windows Phone 8.x is the same: it’s Windows 8. Whether you’re building an app for Windows Phone, for the Windows Store, or the new Universal Windows app model, the underlying runtime is WinRT (not .NET), and WinRT was introduced with Windows 8. The Windows Runtime is part of a reimagining of the developer experience for Windows. It’s the modern Windows API surface used to create new Windows Store apps on Windows 8.x.

Why is Windows 8.1 Pro required for the Windows Phone Emulator?

Windows 8.1 (x64) Professional edition or higher is required for the Windows Phone emulators since those emulators are actually Hyper-V Virtual Machines (VM) running the Windows Phone operating system. Hyper-V is a feature of Windows 8.1 Pro. From a hardware point of view, you’ll need a processor that supports Client Hyper-V and Second Level Address Translation (SLAT). If your computer is running on an Intel Core i3, i5 or i7 CPU, you should be fine as those will typically support SLAT.

Hyper-V enables fast hardware virtualization to accelerate virtual machines and provide maximum performance. If you want to see how slow an emulator can get without hardware virtualization, go try the emulators in Google’s Android SDK.

Note that while you may have Windows 8.1 Pro, it does not necessarily guarantee that Hyper-V will be installed. To be sure, follow these steps:

  1. In Control Panel, click Programs, and then click Turn Windows features on or off.

  2. In the Windows Features dialog box, click Hyper-V. The list of options expands.

  3. In the expanded list of options, select at least the Hyper-V Platform check box, and then click OK.

HyperV-Feature

For more information about the Windows Features dialog box, see Turn Windows Features On or Off.

To learn more about how to enable Hyper-V for the emulator for Windows Phone, refer to the official WP8 documentation here.

What is SLAT? How do I know if my computer supports SLAT?

As discussed above, the Windows Phone emulator requires Hyper-V, which in turns requires a processor that supports Client Hyper-V and Second Level Address Translation (SLAT). PCs that support SLAT are Intel-based processors that start with i (e.g., i3, i5, i7, i9) or any CPUs based on Nehalem, Westmere, Sandybridge, Ivy Bridge & Haswell micro-architectures. The AMD equivalents are supported too.

To determine if your machine supports SLAT, perform the following steps:

CoreInfoSLAT

  • If you have a hyphen/dash (“-”) next to EPT, then you should start looking for a new computer. I hear the Surface Pro 3 is really nice Smile. You’re not entirely out of luck though, you can still use the tools to build Windows Phone apps, but you’ll have to use an external Windows Phone device to run & debug your apps. More on that below.

CoreInfoNoSLAT

There are also scenarios where the hypervisor is not turned on by default and you have to enable it in your computer BIOS. If you’re running Windows in Bootcamp on a Mac, there are no BIOS settings you can edit. The only way to force the a Mac to turn on the hypervisor is to cold-boot into Mac OS X, and then perform a warm reboot/OS switch to Windows.

To learn more about how to enable BIOS settings and Hyper-V for the emulator for Windows Phone, refer to the official WP8 documentation here.

I don’t have Windows 8. Can I use Windows 7 instead?

No. Windows 8.1 is required for the reasons explained above. You can still use Visual Studio 2010 and Windows 7 to build Windows Phone 7.x with the Windows Phone 7.1 SDK. You’ll unfortunately miss out on a lot of the great features introduced in Windows Phone 8 in 2012, and Windows Phone 8.1 in 2014. These great features include In-App Purchasing, Background Tasks, Cortana & the Speech SDK, a new map control & geofencing, support for more screen resolutions, and hundreds of other essential features that Windows Phone users are now taking for granted.

A question I often get is “Why isn’t Microsoft releasing additional updates for Windows 7 to get the Windows App Store and all the bits required for Windows Store & phone development?” There is an easy answer to that. We already did: it’s called upgrading to Windows 8! Seriously, Windows 8 builds on Windows 7. Everything that was in Windows 7 is in Windows 8.x.

What do I install if I already have Visual Studio 2013?

If you already use Visual Studio 2013 Professional Edition or higher, you simply need to install Update 2 or higher to get support for Windows Phone 8.1 and Universal Windows app development. At the time of this writing, Update 3 for Visual Studio 2013 is already available, so you might as well install the latest update:

  • Launch Visual Studio 2013
  • In the Tools menu, select Extensions and Updates
  • Expand the Updates branch in the tree of options on the left
  • Select Product Updates
  • Select Visual Studio 2013 Update 3 in the list of available updates and launch the installation

VS2013Update3annotated

Alternatively, you can download and install the latest update package for Visual Studio 2013 here.

Can I still build Windows Phone 8 apps using the WP8.1 tools?

Yes! You can use Visual Studio 2013 Update 2 and above to build the following types of Windows Phone projects:

  • Windows Phone 8.1 apps (i.e. WinRT)
  • Universal Windows apps for Windows Phone 8.1 and Windows 8.1 (also WinRT)
  • Windows Phone Silverlight 8.0 (i.e. WP apps based on the classic .NET architecture introduced with Windows Phone 7.x)
  • Windows Phone Silverlight 8.1 (i.e. same as above, but with access to the new 8.1 APIs too)

Can I use Visual Studio 2010 or 2012 instead?

If you want to build Windows Phone 8.1 apps or Universal Windows apps, you’ll need Visual Studio 2013 Update 2 or above. You can install the Windows Phone 8 SDK on Visual Studio 2012 to build WP8 or WP7.x apps, and you can install the Windows Phone 7.1 SDK on Visual Studio 2010 to build Windows Phone 7.x apps.

The table below summarizes the various SDKs, Visual Studio versions, app targets supported and required development operating systems.

WPSDK-Compatibility-Chart

I use a Mac. Can I still do Windows Phone development?

Not out of the box, but there are ways to achieve this. Since I’m a cross-platform mobile developer, I use a MacBook Pro for a lot of my development work. You’ll essentially need to install Windows 8.1 on your Mac, and there are two main ways you can achieve this:

  1. Use the Boot Camp Assistant on your Mac to setup a secondary operating system partition on your Mac, and then install Windows 8.1 on that new partition. Boot Camp basically lets you create a dual-boot machine.
  2. The alternative is to use virtualization software like Parallels Desktop for Mac or VMware Fusion to setup Windows 8.1 as a virtual machine (VM) on your Mac. You’ll have to enable something called “Nested Virtualization” to run the Windows Phone emulator, which is itself a VM that therefore needs to run within another VM.
  3. The third option is actually a combination of the first two, and the one I use on my Mac. First, setup Boot Camp on your Mac, and then install Parallels or VMWare. The difference is that when you create your Windows VM, don’t create a new Virtual Hard Drive (VHD) and instead virtualize your Bootcamp partition. This gives you the ability to choose how you run Windows: natively (aka “on the metal”) using Bootcamp, or virtualized when co-habitation is required (e.g. for Xamarin development).

To learn more about Boot Camp, visit Apple’s Support site here.

I don’t have a Windows Phone. Is there an emulator?

Yes, all Windows Phone SDKs ship with their corresponding emulators. As discussed above, the Windows Phone emulator is a full image of the Windows Phone operating system running in a Hyper-V virtual machine. This level of emulation provides full fidelity for testing your apps when compared to a physical device, as opposed to device simulators (e.g. Apple’s iOS Simulator) which provide very little in terms of advanced compatibility with physical devices.

Read more about the Windows Phone 8 emulator here. The Windows Phone 8.1 emulator supports the same capabilities and more. You can download additional images for the emulator here.

How can I use my own Windows Phone to debug apps?

Windows Phone development can be done with entirely free tools. However, to use your own phone for app testing & debugging, you’ll have to register as a Windows Developer on the Windows DevCenter.

  • You do not need a Windows Phone Developer account to download the SDK and start developing apps
  • You do need a developer account to unlock a phone for development and to submit apps for testing and publication in the Windows Phone Store (formerly known as Windows Phone Marketplace)

To get a Developer Account:

Note that the registration now includes both the Windows Store and Windows Phone Developer registration in the same account! The $19 charge used to be a yearly fee but Microsoft recently announced that it is now a lifetime subscription, effectively making Windows Phone the cheapest modern device app store you can publish to.

To learn more about developer licenses for store apps (i.e. Windows & Windows Phone), refer to the official documentation here.

Once you are registered as a Windows developer, follow these steps to register your Windows Phone device for development.

How can I get a cheap Windows Phone for development?

I’m glad you asked. The Windows Phone ecosystem has a wide range of devices for all budgets. We have flagship devices like the Lumia 1520 or the Lumia ICON (aka Lumia 930 worldwide). We also have very affordable yet full-featured phones that you can buy off-contract (i.e. without any carrier subsidized discount or two-year contract) for less than $100 USD. Here are some options:

Note that these phones either ship out of the box with the latest Windows Phone 8.1 software, or with Windows Phone 8. All these phones are upgradeable to Windows Phone 8.1 with all the new features like Cortana, Action Center, Universal Apps, folders, geofencing, triggered tasks, and so on.

Next Steps: Learning Resources

Congratulations! You should now have a working development environment to built Windows Phone apps and Universal Windows apps. In terms of resources to get started, my whole blog is dedicated to helping mobile developers across the board, but if you’re looking for a short list of resources to jumpstart your learning, start digging in the following:

If you have any questions or issues regarding your setup, feel free to ask me questions in the comments section below, or you can ping me on Twitter at @ActiveNick. if there are common questions or issues that I have not addressed here, feel free to let me know what those are and I’ll append them to this post.

Good luck with your apps, and make sure to let me know when you publish new apps in the store. I always love promoting the work of our community.

Getting Started with 2D Game Development Using GameMaker

Gamemaker-Getting-Started-Banner

by Nick Landry

Anyone who knows me personally or follows me on Twitter knows that I’m a huge gamer. The problem is that between work, community events, social life, my wife and twin babies, I virtually have no time to play games. I now game vicariously through occasional mobile games, listening to gaming podcasts when I drive, and buying games I’ll probably never have time to play. I have over 20 MMOs installed on my home rig, and I’m addicted to Steam sales (I even have the 250+ badge on Steam).

The cool thing is that Steam started selling software a while back and during one such Steam sale over the holidays, I snagged a copy of GameMaker: Professional for only $25 (that’s 75% off). I decided to take it for a spin (thanks to my colleagues Joe Healy and Daniel Egan for the push). I’m no game development expert. I’m more of a game development enthusiast. I’m also learning Unity on the side, and my game development background is with XNA – a topic I have covered at many conferences and user groups over the last 7 years.

Game development has to be one of the most rewarding forms of software development. You’re basically using your programming skills to make something fun! But game development is also not for the faint of heart as it can truly test your programming skills, knowledge of math, creative juices, imagination and patience. Fortunately, there are cool game engines and IDEs like GameMaker to simplify our lives as we seek to produce fun games in less time.

CurtainQuestion

What is GameMaker?

As its name implies, GameMaker is a game development environment and engine produced by YoYo Games that lets you design and build cross-platform games for desktop computers, the Web, mobile phones and tablets.

How much does GameMaker cost?

GameMaker: Studio starts out free with the Standard edition. You can download it here from YoYo Games. There used to be 4 editions of GameMaker, where the free edition was limited in the number of resources you could use in your game projects (which translates in the complexity of the game you can build). The free version now has unlimited resources, and that is great news. In terms of support platforms for your games, the free Studio edition used to support Windows Desktop, Mac OS X and Windows Apps (i.e. Windows Store apps on 8.x). Now the free version only supports Windows Desktop.

This means you can start building Windows games for free and anyone with a standard Windows 7 or 8 computer can play your game from the desktop. Distribution won’t be easy though. Publishing to Steam is not that easy and self-publishing outside of public stores can be frustrating. You’ll probably want to publish it to the Windows Store. For that you need to upgrade to the Professional edition for $100. There are other features you will get in the Professional edition, such as texture management, multiple configurations, mobile testing and more. It’s a great bargain and if you already work as a professional developer during the day, surely you can afford a $100 tool.

Important Note: YoYo Games is currently running a Summer sale at the time of this writing. You can get GameMaker Studio Professional for a mere $60. That’s the cost of a single console video game. I strongly encourage you to take advantage of this deal. Other deals have been announced on the other modules. Read more about the sale here.

Beyond Windows Desktop and Windows Store, GameMaker also support additional mobile platforms, but you’ll have to first upgrade to the professional edition, and then buy these modules separately:

  • Windows Phone 8
  • iOS
  • Android
  • Web / HTML5
  • Mac OS X

And quite a few other platform exports are supported too. The following table shows the three editions of GameMaker, their respective features and add-ons. More details on the YoYo Game website here.

GameMakerComparison

You might be wondering where to buy GameMaker: from Steam or directly from YoYo Games? I’m told that the Steam version has a tendency to lag behind a bit in terms of updates, so you should probably buy direct from YoYo Games if you’re about to pay full price. You’ll also get the option of getting early access builds this way too. Steam does run sales often, so if you can get a great deal, get it on Steam instead.

GameMaker vs. Unity, Construct2, XNA/MonoGame, etc.

Why should I use GameMaker?

Why not use Unity? I hear it’s great and it gives me more exports for free?

These are valid questions. Game development preferences – just like with games – can be quite subjective. Unity is great and I’m learning that engine too. It’s true that GameMaker is not exactly a professional tool, it’s more of a hobbyist & indie tool. That said, I love how GameMaker is much easier to pick-up and build something fast compared to Unity. Unity is by far more powerful than GameMaker, and has a much larger and richer ecosystem around it, but the learning curve with Unity is steeper. Unity was also originally designed as a 3D game development engine. The 2D support added in Unity 4.3 makes it much easier to build 2D games, but it’s not exactly as easy as GameMaker to get started with it.

My game development background is with XNA. It was an awesome framework that simplified game development by creating a level of abstraction above DirectX in managed code and it made it accessible to C# developers. The XNA Content Processing pipeline also made it easy to import media assets in your projects. Unfortunately XNA is no longer being developed on at Microsoft. While it lives on across multiple platforms thanks to the awesome MonoGame project, once you’ve tasted the ease of use of a game development engine like Unity or GameMaker, it’s hard to go back to coding everything yourself, be it in C++ or C#.

There are countless other popular game engines like Construct 2, GameSalad, Cocos2d and Torque, but I’m not familiar with any of them yet. Some are even simpler than GameMaker as they try to avoid scripting/coding as much as possible, while other engines like Unreal, Havok, Marmalade and Hero Engine are for the “big leagues” professional game developers who only swear by C++.

Choosing a game engine is ultimately a personal choice. You should first look at the cost, the programming skills required, the learning curve and the supported platforms. This post is about GameMaker and once you’ve tried it, you’ll know soon enough if it’s for you, or not.

 

Gamemaker-Showcase

Some Games Built with GameMaker

GameMaker may not have the impressive portfolio of professional AAA or indie games that Unity has, but there are still quite many good games that are powered by GameMaker. It’s a great engine for mobile and indie game development. Some examples include:

There are of course many more games built in GameMaker. Check out the Showcase page here for 30+ more featured GameMaker titles. if you know of other cool games made with GameMaker (even your own), feel free to link them in the comments below.

Learning GameMaker Through Tutorials

This blog post is not about teaching you GameMaker (yet). YoYo Games already has a great set of learning resources for you to get started, and I won’t pretend to supersede that with my own walkthrough. My recommendation is that you go through the tutorials baked directly in the product:

  • Install and launch GameMaker
  • The New Project dialog will be shown. Select the “Tutorials” tab
  • Expand the “Beginner” tutorials branch on the left, select 01_My_First_Game and go through that tutorial, following the step by step instructions for the “bouncing clown” game.

This should give you a good taste of the GameMaker experience. Once you’re done, you can explore the other tutorials.

Screenshot 2014-03-17 14.50.49

There are many more great tutorials available, including:

  • GameMaker Tutorials by YoYo Games
  • GameMaker Tutorials by Shaun Spalding
  • RPG Tutorial Video Series: This series by rm2kdev is fantastic and I’m still going through it myself. I highly recommend it if you’re interested in building a retro RPG in 2D. Note that the series uses the art from the RPG Maker RTP engine, and you are not allowed to use it in games that you publish or sell. This is for learning purposes only.

Speaking of art… where should get your graphics and other media assets for your games?

Obtaining Art Assets for your Games

Since most developers (including myself) are not artists, figuring out which art files to use can be a big challenge when getting started with game development. You can partner-up with an artist to build a joint project together, but it’s usually a good idea to get started on your own with some pre-made assets as you learn the tools of the trade. Once you’ve built one or two test games, you’ll have a better idea on what to look for in an artist, and you’ll be more productive as you collaborate together on a game.

Here are some sources where you can look for pre-made art:

  • YoYo Games Marketplace: This is still new and in the “Early Access” stage. You’ll need the early access version of GameStudio too.
  • OpenGameArt.org: Carefully review the license for any art assets you find there before using them in your games.
  • Unity Asset Store: While this store is optimized for Unity developers, you can still find some good assets there too – some paid, some free.

If you have other sources of open art assets for game developers, please post it in the comments section below and I’ll add it to my post after review.

Remember that you are legally not allowed to simply lift any graphics from the Internet or other games for your own projects. It’s ok to do so if this is just for your own learning experience, but don’t publish these games until you’ve replaced the art with assets you are legally licensed to use.

 

WindowsStoreGames

Packaging Your Game for the Windows Store

Running your game locally or creating an executable capable of running on the Windows desktop is all fine and dandy. That said, I bet you’d like to publish your game in a mobile app store to make it available to millions of users and (hopefully) make some money. You’ll need to buy GameMaker Professional and some additional export modules to package & publish your games to iOS, Android or Windows Phone. Luckily for us, packaging & publishing your game to Windows 8 or Windows RT computers, laptops or tablets via the Windows Store is included in the base Professional edition of GameMaker without the need to buy any extra modules.

If you have an existing GameMaker game you’d like to port to the Windows Store, make sure to read this blog post by my colleague Amanda Lange.

Read this knowledge base article to prepare your GameMaker environment for Windows Store development (referred to as Windows 8 in GameMaker).

Read this other knowledge base article to publish your game to the Windows Store.

For any other questions you might have about publishing GameMaker games to the Windows Store, refer to the GameMaker Windows 8 Knowledge Base here.

GameMaker Reference links

If you have other GameMaker resources to recommend, feel free to include them in the comments below.

You can expect more posts on this blog about game development in the coming weeks and months. Some will be for GameMaker, and others will be for Unity as I explore both tools. have you tried GameMaker before? What did you think of it? Have you published GameMaker titles? Let me know in the comments section below or on Twitter at @ActiveNick.

GameMakerGMLPacktBook

Event Session – Building Universal Windows Apps for Smartphones and Tablets with XAML & C#

Universal-Apps-Devices

by Nick Landry

The “Blue Wave” is in full swing. Thanks to the new Universal Windows app templates in Visual Studio 2013 Update 2, it is now easier than ever to build mobile apps for both Windows Store and Windows Phone. Developers are curious about the new features and I’ve been touring around speaking at events to spread the word about Universal Windows apps.

I recently presented this talk at Philly Code Camp 2014 last weekend, at the Microsoft Mobile App Devs of New Jersey (MMAD) Meetup and NYC .NET Developers Group.

Session Description

This session is your fast track into the wonderful new world of app development for Windows device. Come learn how your valuable C# skills now make you a hot mobile developer for smartphones, tablets, laptops and desktops. We’ll perform a quick lap around Microsoft Visual Studio 2013 and the new Windows Universal Apps, build our first app using XAML & C#, and debug it with Windows 8.1 and the Windows Phone Emulator. We’ll then explore the converged WinRT API services and features, such as touch input, accelerometers, Live Tiles, etc. We’ll also spend valuable time going over the new app model for Windows device apps, how to share code between phone and tablet, and how to build a converged UI in XAML for Windows 8.1 and Windows Phone. Lastly we’ll go over the app packaging and how to submit your Universal apps to the Windows Store. The converged Windows Platform is more efficient and far-reaching than ever. Come learn how to build mobile apps for hundreds of millions of Windows device users.

Session Slides

You can view & download the slides for this talk from my Slideshare account here, or you can use the embedded viewer below.

Session Demos

You can download the demos and samples for this session using the links below:

Session Links and Resources

If you have questions about this session, you can ask them in the comments section below or contact me on Twitter at @ActiveNick. If you’re interested in inviting me to present this talk at your event or meetup, you can reach me via my contact form here.

PresentingUniversalApps

Event Session – Beyond Cortana & Siri: Using Speech Recognition & Speech Synthesis for the Next Generation of Mobile Apps

Cortana Halo 4 HD

by Nick Landry

Speech is probably the topic I’m most passionate about when it comes to app development (ok, I have a soft spot for GIS too). From HAL9000 in 2001: A Space Odyssey and Joshua in WarGames, to Star Trek computers, Siri and Cortana, having conversations with a semi-sentient computer using natural language and speech is probably the ultimate frontier of technology. But speech can also be a responsibility for us developers to make sure our apps are usable by all, and to keep our users – and those around them – safe. This talk is one of my favorite. It’s about using Speech Recognition & Speech Synthesis to build the next generation of mobile apps.

I recently presented this talk at Philly Code Camp 2014 last weekend, and at the Microsoft Mobile App Devs of New Jersey (MMAD) Meetup. I’ve also presented it at Internet Week NY 2014 last month, and I’ve done variations of this talk at other events in the past including VSLive, CodePalousa, DevTeach, DVLUP Day Boston and M3 Conference.

Session Description

Our society has a problem. Individuals are hooked on apps, phones, tablets and social networking. We created these devices and these apps that have become a core part of our lives but we stopped short. We failed to recognize some of the problematic situations where our apps are used. People are texting, emailing and chatting while driving. Pedestrians walk into busy intersections and into sidewalk hazards because they refuse to put their phone down. We cannot entirely blame them. We created a mobile revolution, and now we just can’t simply ask them to put it on hold when it’s not convenient. It’s almost an addiction and too often it has led to fatal results.

Furthermore, mobile applications are not always easy to work with due to the small screen and on-screen keyboard. Other people struggle to use traditional computing devices due to handicaps. Using our voice is a natural form of communication amongst humans. Ever since 2001: A Space Odyssey, we’ve been dreaming of computers who can converse with us like HAL9000 or the Star Trek computers. Or maybe you’re part of the new generation of geeks dreaming of Halo’s Cortana? Thanks to the new advances and SDKs for speech recognition and synthesis (aka text-to-speech), we are now several steps closer to this reality. Siri is not the end game, she’s the beginning.

This session explores the design models and development techniques you can use to add voice recognition to your mobile applications, including in-app commands, standard & custom grammars, and voice commands usable outside your app. We’ll also see how your apps can respond to the user via speech synthesis, opening-up a new world of hands-free scenarios. This reality is here, you’ll see actual live cross-platform demos with speech and you can now learn how to do it. Speech support is not just cool or a convenience, it should be a necessity in many apps.

Session Slides

You can view & download the slides for this talk from my Slideshare account here, or you can use the embedded viewer below.

Session Demos

You can download the demos and samples for this session using the links below:

Session Links and Resources

If you have questions about this session, you can ask them in the comments section below or contact me on Twitter at @ActiveNick. If you’re interested in inviting me to present this talk at your event or meetup, you can reach me via my contact form here.

Nick-SpeechSDK-Talk

Internet of Things Expo Power Panel with Microsoft, IBM, Kaazing, LogMeIn & Aria

ThingsExpo Power Panel 2014 Banner

by Nick Landry

I recently had the pleasure of joining a team of experts on the Things Expo Power Panel about the Internet of Things (IoT). The panel was recorded on Monday June 9, right before the Internet of Things Expo – which is part of SYS-CON’s Cloud Expo – which was held June 10-12 2014 at the Javits Convention Center in New York City.

In this Internet of Things Expo Power Panel, conference chair Roger Strukhoff led a discussion with several industry experts on how the future of computing lies in things and how, as computing takes a much more active role in our lives, it will at the same time become much more invisible. We discuss various company strategies for IoT, the effects of Moore’s Law on IoT, how to connect all these billions (or trillions?) of things in a realistic manner, how can companies get started, and much more.

The panelists were:

You can watch the panel on YouTube here or using the embedded player below:

Here are a few of the things that I mentioned in the panel:

Also, make sure to watch my interview with Kevin Benedict about Microsoft strategy in the Internet of Things recorded the very next day. Watch it here.

Where do you stand in the issues discussed in the panel? What does the Internet of Things mean to you? Is your company a player in that space? Are you a maker? What cool ideas do you have for connecting “things” with devices, computers and the cloud? Let me know in the comments below or on Twitter at @ActiveNick.

Dads: Teach Electronics to your Kids

DadsElectronicsBlogBanner

My Three Dads

by Nick Landry

Yesterday was Fathers Day. I feel very lucky because I didn’t grow up with one father, I grew up with three fathers. My father, my stepfather and my godfather. All three had a presence and an important role in my life. I am eternally grateful to them. My dad was a career lawyer (pictured above right), and was always quite busy (he’s 76 and still not fully retired). He was there as a great provider and a role model, but he was not the kind of dad who would sit down and play with me, do home projects or spend too much time in my world. Thanks to him I grew up in a nice home with everything I needed, I learned good values, I had unforgettable summers of fun at camp, I learned tennis, I had private ski lessons and a season pass every winter, I got to go to a private high school, and I didn’t pay a dime for University. I’m only scratching the surface here, of course. Thanks Dad.

My godfather was also important to me. My godparents are family friends and I would spend a few weekends a year with them. He was always full of great advice and wisdom, he was fun, and it was thanks to his purchase of the original Macintosh in 1984 that I fell in love with computers. His son was also my childhood best friend, and my godfather treated me like a son. He was also there to listen to me and support me when I had a tough decision to make about my studies and my career. He taught me to follow my dreams. Thanks Pierre-André.

My parents got divorced when I was 9, which is about the age I was when my stepdad entered my life (pictured above left), and I entered his. I know that many unfortunately grew up in a life of conflict with stepparents, but I was blessed to have experienced the most “amicable and stable” divorce you could have for your parents. Both my mom and dad found new soul mates shortly after their separation – and have been with them since – for over 30 years now. My stepdad became that dad that spends time with you, plays with you, listens to you, works on projects with you, and gives you his full attention. We did video projects together – from live action to stop-motion LEGOs. He built a tree house at our summer cottage for me. He did so much renovation work for my new bedroom in the basement, or new apartment, or new house. He filmed and created unforgettable video montages of so many happy moments of my life – including my wedding video. He did so much more, and he always treated me like his own son. Thanks Gaëtan.

Yesterday was also a special Fathers Day for me: it was my first “real” one as a dad. My kids were born shortly before Fathers Day last year but they came early and spent a few weeks in the hospital NICU. I was a father already but I was not truly taking care of them yet, we had an amazing staff of nurses and doctors to do that. Today my kids are 1 and it really felt like Fathers Day. Every since my wife got pregnant I’ve been reflecting on the kind of dad I want to be, in essence striving to take the best of my 3 dads and adding my own touch.

This post is not about how to be a good dad. I barely know that myself and I’ll be learning how to be one for the rest of my life. This post is about one special thing amongst a million that you can do to be a great dad: spend time with your kids and teach them electronics.

 

Science Fair 160 Electronics Projects with Page 1

Left photo courtesy of MightyOhm

My First Electronic Kit

I got my first electronics kit in my early teens. It was a birthday gift from my stepdad. It was one of those popular Science Fair Electronic Project Labs by Tandy | Radio Shack. Mine was the awesome “160 choses à faire” (French for 160-in-1). Oh man, I had so much fun with this. For years I played with it. It was one of those things I could easily pack and bring with me to our cottage. It was safe thanks to these little coils letting you easily connect components without soldering. It was fun, I felt like I could create anything. I learned some electronics basics with it, but I also learned to read carefully. I was learning by reading, but it didn’t feel like homework because it was fun. And I learned patience. Some of those projects could get quite complex, requiring a lot of wiring. And I learned debugging, a skill that I still use today, which also requires a lot of patience. I would many times make a mistake when wiring a project, and I’d have to backtrack and figure out where I went wrong.

It didn’t end there. For years I would look at the Radio Shack catalog, searching for other cool stuff I could beg my parents for. There was a bigger version of this kit, the “200-in-1”. I can’t remember if I actually put it on some wish list, or if I never pulled the trigger to buy one with my savings, but I never got one. I eventually completely destroyed my 160-in-1 for a shop class project in high school and I regret it to this day. I do have fond memories of this kit, and this is something I want my kids to experience.

My kids are only 1 year old, but when they’re old enough, I’ll teach them electronics, and so should you.

 

Video Games and Kids

Electronics, Video Games, Your Kids and You

There are many options you can explore if you want to teach your kids electronics. If you don’t know electronics, learn it with them. All the kit suggestions I’m listing below are pretty much self-explanatory. If you’re a technical individual (chances are good that you are if you’re reading my blog), you’ll pick it up in no time, and can then explain your kid how stuff works. You can spend time together, share victories and frustrations, you can build something, be a maker!

I want to be clear: I am not suggesting that you focus on electronics instead of other important developmental youth activities, such as sports or learning a musical instrument. I am suggesting that you add this to your “dad to-do list”. Extra curricular activities are super important, but they usually all involve driving your kid somewhere and adhering to a fixed schedule. Once your kids are back home, what do they usually do? Hopefully they enjoy reading and do their homework, but chances are they also like watching TV and playing video games.

I have nothing against TV and video games, I’m a huge gamer myself and I grew up with video games. But we’ve come a long way since Pac-Man and Donkey Kong and today’s games are much more “engrossing” (I hate using the word addictive when it comes to gaming). Fighting the lure of an Xbox One is a tough thing to do, and denying them access only leads to frustration on all sides. Video games played in moderation are just fine, but when it becomes too much, try redirecting their attention and interests towards electronics. If they inherited any of your techie genes, they’ll hopefully have fun and pursue it on their own.

Another clarification: Don’t be a cliché. Electronics are not just for boys. Have your little princess learn technical stuff too. You’ll be surprised. Girls are often more patient than boys, and might stick with it even more. She’ll be happy to share something with her dad.

Electronic Kits for All Ages

There are quite a few options to learn electronics. This is by no means an exhaustive list, but as far as I know, these are the most popular options.

Elenco Snap Circuits

Elenco Snap Circuits (age 8+)

Snap Circuits makes learning electronics easy and fun. Just follow the colorful pictures in the manual and build exciting projects such as AM radios, burglar alarms, doorbells and much more. You can even play electronic games with your friends. All parts are mounted on plastic modules and snap together with ease. Enjoy hours of educational fun while learning about electronics. No tools required. Many kits are available, each with more or less parts, letting you create 100, 300 or 750 projects. There is a physics kit and other options too.

 

Start

littleBits (age 8+)

littleBits consists of tiny circuit-boards with specific functions engineered to snap together with magnets. No soldering, no wiring, no programming, just snap together for prototyping, learning and fun. Each bit has a specific function (light, sound, sensors, buttons, thresholds, pulse, motors, etc), and modules snap to make larger circuits. Just as LEGO allows you to create complex structures with very little engineering knowledge, littleBits are small, simple, intuitive, blocks that make creating with sophisticated electronics a matter of snapping small magnets together.

There are several kits available, even a space kit! Newer kits even let you teach programming to your kids. The diversity of projects being created with littleBits is quite astounding.

 

Elencto Electronic Project Labs

Elenco Electronic Project Labs & Playgrounds (age 10+)

Elenco’s Electronic Project Playgrounds & Labs are the spiritual successors to Radio Shack’s popular Science Fair kits. A wide selection is available. These are classic electronics trainers for expanding the depths of electronics understanding. They uses the same spring-wire connection methods as Radio Shack’s Science Fair kits (and a breadboard as well) for quick and easy modifications and troubleshooting. With the projects in this kit, learn about transistors, transformers, diodes, capacitors, oscillators, basic electronic circuits, and schematic symbols. Everything you need to build exciting electronics projects including: Delayed Timer, Optical Volume, Digital Light Dimmer, Tone Burst Generator, Audio Signal Tracer, Voice Level Meter, Voltage Drop Alarm, Function Generator, Voltage Control Amplifier and many, many more.

 

Lego Mindstorms EV3

LEGO Mindstorms EV3 (age 10+)

While technically not an electronics kit – it’s actually a robotics kit – I just couldn’t publish this blog post without talking about LEGO Mindstorms. Some kids will actually be more motivated by stuff that moves rather than stuff that blinks. I grew up with LEGO and while a few kits included some basic electrical motor functions (I never got one of these) I really wish we had a robotics kit like this. The LEGO Mindstorms EV3 is the third generation of Mindstorms and was released in 2013. Combining the versatility of the LEGO building system with the most advanced technology ever developed by LEGO, create and command robots that walk, talk, think and do anything you can imagine (assuming you have the proper parts, of course). Follow the step-by-step 3D building instructions to create multiple pre-designed robots and bring them to life with an easy, intuitive and icon-based programming interface. Grab the enclosed remote control and take on challenging ready-made missions or download the free app and command your robot using your smart device. You can also visit LEGO.com/mindstorms to access loads of cool content and interact with a huge online community of other LEGO MINDSTORMS fans – kids and adults alike.

 

Gadgeteer

Microsoft .NET Gadgeteer

We’re now starting to enter the big leagues. Microsoft .NET Gadgeteer is an open-source toolkit for building small electronic devices using a wide variety of hardware modules and a powerful programming environment based on the .NET Micro Framework and Visual Studio/Visual C# Express. Even someone with little or no electronics background can build devices made up of components like sensors, lights, switches, displays, communications modules, motor controllers, and much more. Just pick your components, plug them into a mainboard and program the way they work together. .NET Gadgeteer uses the .NET Micro Framework to make writing code for your device as easy as writing a desktop, Web or Windows Phone application.

For educators, .NET Gadgeteer is a great way to excite students about programming, electronics and design. For hobbyists and inventors, bring your ideas to life in hours instead of days or weeks. Develop your inventions easily and show your friends and potential investors. Even professional prototypers can go from concept to test in less than a day. Hardware, software and physical design come together to enable quick assessment of sophisticated concepts. A .NET Gadgeteer system is composed of a mainboard containing an embedded processor and a variety of modules which connect to the mainboard through a simple plug-and-play interface. There are lots of .NET Gadgeteer modules available today, including: display, camera, networking, storage and a variety of sensors and input controls. New modules are being designed all the time!

 

Boards

Arduino, Raspberry Pi, Netduino, etc.

Whether you have older kids or you want to learn electronics for yourself, all roads eventually lead to the Arduino and/or the Raspberry Pi. This is where you step beyond just electronics and into the full Internet of Things.

Arduino can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators. The microcontroller on the board is programmed using the Arduino programming language and the Arduino development environment. Arduino projects can be stand-alone or they can communicate with software running on a computer. The Netduino is an Arduino-compatible development board by Secret Labs that uses .NET Micro Framework to let you build electronics projects with Visual Studio and C#. Secret Labs also has the Netduino Go which offers a plug & play architecture similar to the .NET Gadgeteer.

The Raspberry Pi completely revolutionized the maker space. The Raspberry Pi is a low cost, credit-card sized computer that plugs into a computer monitor or TV, and uses a standard keyboard and mouse. It is a capable little device that enables people of all ages to explore computing, and to learn how to program in languages like Scratch and Python. It’s capable of doing everything you’d expect a desktop computer to do, from browsing the internet and playing high-definition video, to making spreadsheets, word-processing, and playing games. What’s more, the Raspberry Pi  has the ability to interact with the outside world, and has been used in a wide array of digital maker projects, from music machines and parent detectors to weather stations and tweeting birdhouses with infrared cameras.

This world is huge and providing enough details to get started with Arduino or Raspberry is beyond the scope of this post. I’ll be posting more info in future blog entries. Here are a few reference links in the meantime:

 

What’s your story? Did you learn electronics as a kid? Are you teaching electronics to your kids? Do you have advice for other moms or dads who want to go down this path with their kids? Let me know in the comments below, or on Twitter at @ActiveNick.

Oh, and remember that 200-in-1 Science Fair kit I never got? I found one on eBay and 30 years later one of my childhood wishes came true. I can’t wait to show my kids in a few years…

Twins and 200-in-1

Live from New York, it’s the Internet of Things!

IoTExpo Galileo Banner

by Nick Landry

I’ve been spending the last couple of days at SYS-CON’s Cloud Expo in New York City – which also includes the Internet of Things Expo (amongst others). It’s been fun so far to connect with attendees at the Microsoft booth and discuss all the goodness that is in Microsoft Azure, and I’ll be back there for another day tomorrow. Yesterday I had the pleasure of meeting Kevin Benedict from Cognizant and MobileEnterpriseStrategies.com. We sat down for a short interview to discuss the Internet of Things, how Microsoft plays in that space, where things have been, where things are going, and also discuss some cool scenarios. The possibilities are truly endless.

You can watch the interview right here below. I’ve also included various links to some of the topics discussed at the bottom of this post.

Links from the Interview

What does the Internet of Things mean to you? Are you a maker? What cool ideas do you have for connecting “things” with devices, computers and the cloud? Let me know in the comments below or on Twitter at @ActiveNick.

App Spotlight: MakerBot Thingiverse

StarTrekReplicator

by Nick Landry

3D printers fascinate me. I’m sure I’m not the only one. I do not own one (yet) though. There are several reasons for that:

  1. I have to convince my wife to let me buy one. No further comments.
  2. I’d have to cough-up a few G’s because I’d buy a really good one, like a tried-and-true MakerBot. There are cheaper alternatives but what I hear is they might have some flaws you only discover after 50-100 prints. Reviewers often don’t get that far before grading a 3D printer. I have more research to do.
  3. What would I print?

The third one used to be the key issue for me. My 3D design skills are quite rudimentary and I’d be afraid of wasting a lot of time and filament (i.e. 3D printing material) only to produce really crappy objects, parts and prototypes.

Then I discovered MakerBot’s Thingiverse.

Oh man, I think I’m gonna have to buy a MakerBot soon. Thingiverse is a portal for 3D designers and makers to share their designs, turning 3D printing into living community where ideas literally come to life. Think of Thingiverse as the internal database of the Enterprise (or Voyager or DS9) replicators. I never saw any Star Trek character play with 3D models before they replicated anything. I bet they had great 3D design engineers at Starfleet to seed the database. The crew just “queried” the database (using voice) and the replicator made it. This truly makes a 3D printer a tool for everyone.

Thingiverse is available on the web, but also as an app for iPhone, Android and now for Windows 8! The Windows Store version works both on Windows 8 and on Windows RT.

IC671223

App Description

MakerBot’s Thingiverse is a thriving design community for discovering, making, and sharing 3D printable things. As the world’s largest 3D printing community, we believe that everyone should be encouraged to create and remix 3D things, no matter their technical expertise or previous experience. In the spirit of maintaining an open platform, all designs are encouraged to be licensed under a Creative Commons license.

The Thingiverse app lets you browse Thingiverse from the comfort of your computer. See what we’ve featured, what’s new and noteworthy, what the community has made, and what’s popular. When looking at the things themselves, scroll through beautiful slideshows of photos. Like items, add them to your collections, and quickly share them to your social networks or email.

Make. Share. Discover.

Thingiverse00

Impressions

If you’re familiar with the Thingiverse community on the web, you’ll feel right at home in the Windows app. There are featured collections, creations from MakerBot challenges, a global feed showing the latest activity in the community, and a list of recently made “things”. There are even customizable creations which you can personalize with the Customizer app accessible straight from within the Windows app.

You can of course search to your heart’s content. No voice search like Star Trek yet though, hopefully that will come someday. The first thing I searched for when I launched the app? Raspberry Pi cases. Yes, there are tons of them. My next search was cases for the Intel Galileo. Since I’m doing some really cool stuff with mine right now.

When viewing the details page of a “thing” design, you will get:

  • One or more photos of the final result as posted by the designer
  • Instructions (if made available by the designer)
  • Community stat counters for likes, collected, how many makers made one and more
  • User comments
  • Suggestions for other designs
  • File downloads

Thingiverse01

If you do not have a community account on Thingiverse, you can create one straight from the app. Once logged in, you can “like” various creations, and create lists of favorites called “Collections”. If you create something someone else designed, make sure to say so in the app and post a nice comment for the designer. It’s a community after all. You can fill out a full profile in the app and also sign-in with your Twitter account.

I was also happy to see the Thingiverse app supporting Snapped View. Snapping Windows apps is in my opinion one of the most underused and underestimated features of Windows 8.x and I find it critical for app developers to support it. MakerBot Thingiverse supports snapped view very well. If you squeeze the app even more, its responsive design will even adapt to the allowed app width and you can use another app side-by-side. It’s amazing how browsing for replicator models works well while watching Star Trek on Netflix.

Overall, I love the app. I highly recommend you take it for a spin. Go download it now!

Do you own a 3D printer? Which one? What do you use it for? If not, are you thinking of buying one? Let me know in the comments section below, or contact me on Twitter at @ActiveNick.

 

IC671223

Thingiverse02

(re)Introducing Windows Platform Developer Magazine

WPDEV Magazine Cover 2014-6-6-1280

Almost a year ago, I decided to test the waters on a new feature of my (then) favorite iPad app: Flipboard. Flipboard is still one of my favorite apps on the iPad, and I also use it on Android and Windows 8. Flipboard was basically my favorite way to read all the articles gathered under my own Google Reader, with everything neatly organized like a magazine layout. Flipboard has evolved beyond its RSS roots, especially given the closure of Google Reader. I now use Feedly instead, but Flipboard doesn’t integrate with it. You can still add individual RSS feeds to Flipboard however.

Flipboard also offered article feeds from well known news sources, and later introduced a feature to curate your own magazines, and then share them with the world. Not only limited to mobile devices (especially tablets), Flipboard announced last year that Flipboard Magazines could now be enjoyed on the web.

I decided to experiment with the idea and launched my first Flipboard magazine: Windows Phone Developer – featuring news,  tips, and techniques for mobile developers passionate about Windows Phone. The launch “issue” included 66 articles from the past month, covering Windows Phone both the end user and the developer point of view. The months went buy, the magaine grew with more articles and more readers and I can honestly say that so far this has been a successful experiment:

  • Over 300 articles!
  • Over 48,000 readers!!
  • Over 1 million page flips!!!

WPDEV Magazine First 6 Covers-1280

Today I am re-branding and re-launching my Flipboard magazine for a new world of Universal Windows apps for phones, tablets, laptops, desktops & other Windows devices. Introducing:

Windows Platform Developer Magazine! Access it here at http://aka.ms/wpdevmag

The articles in Windows Platform Developer Magazine are curated from various sources, including official Microsoft blogs, DVLUP, Conversations on Nokia, Windows Phone Central, and other sources including blogs from MVPs, community experts and such. If you feel there is another source of articles I should be drawing from, feel free to let me know in the comments below. I also individually select and curate each article that goes in. I do not use scripts to populate the magazine from RSS feeds. As such, the appearance of new articles is not always regular, and I promise to stay on top of things to keep the content fresh.

So go try it out. Download the Flipboard app on Windows 8, iOS or Android, and subscribe to Windows Platform Developer Magazine at http://aka.ms/wpdevmag. You can also use the link to flip through in a web browser.

What do you think? Do you like the magazine? I will be announcing a couple more magazines soon. Are there more topics you’d like me to cover in other magazines? Let me know in the comments below or on Twitter at @ActiveNick.

WPDEV Magazine Sampe Pages 01

Mobility42: Apps for Life, the Universe and Everything