In this post, I’ll walk you through the code in a very minimal app that just demonstrates getting locaiton. This app was created using the Xamarin Android platform, so it is written in C# but still uses the Fused Location Provider API which is provided by Google Play Services . My code is available on GitHub in a Xamarin Studio / Visual Studio solution: Geolocation Demo. (more…)
Why Use the Google Play Services APIs?
Google Play Services (also known as Google APIs for Android) and abbreviated GPS, is a set of APIs that are delivered in the form of an app that can be updated via the Google Play Store. The reason Google provides these APIs this way is to reduce fragmentation of the Android platform. Fragmentation is a result of many different versions of Android running on devices out in the wild. (more…)
Tricky Android Emulator Setup
I found that testing apps that use the Android Fused Location Provider on an emulator
can be a bit tricky! (But, as a software developer, doesn’t every new thing you try turn out to be tricky?)
You need Google Play Services to Access Location Data
The Fused Location Provider is one of the APIs provided by Google Play Services. If you are creating a location-aware app, Google recommends that you use the this API rather than the older android.location API. In order to test your app in an emulator, you will need to have Google Play Services installed. The default Google Android Emulator images don’t include Google Play Services, but it is available and you can include it when you create an AVD (Android Virtual Device, aka emulator).
Watch a video of me using this post to set up an emulator:
Deploying Apps directly to devices
One of the trickier parts of doing iOS development is registering your device (iPad, iPhone, or iPod) with Apple so that you can test an app on that device. This process is called creating a provisioning profile. You can follow either the Apple guide or the Xamarin guide for doing this, but I’m writing my own guide because things didn’t go very smoothly for me while following either of theirs. (Although the Xamarin guide was easier to understand.)
Cross-Platform Mobile Development with Xamarin
Suppose you’re a .Net developer and you recently discovered Xamarin’s cross-platform framework for doing mobile app development using the .Net languages and libraries. You’ve used Visual Studio to make a killer Android app.
Now you want to make an iOS version of the app, but you don’t have a Mac– and Apple’s licensing requirements specify that you must use a Mac to build iOS apps. Apple is fine with you doing all the development (writing the code and creating the UIs) anywhere you like, but the code has to be compiled and linked on a Mac. (more…)
Next term, Winter 2016, at Lane Community College, I will be teaching a course in iPad and iPhone app development, CS235IM, Intermediate Mobile App Development: iOS. This is a beginning course in writing apps for iOS (the title “intermediate” is misleading). We will be using the Xamarin platform to write native apps using C#. As a student, you will get a free Apple developer license and free Xamarin iOS and Android developer licenses. This course is offered for college credit (4 credits) and will be offered both on-campus and online. Online students can participate from anywhere in the world and at any time of the day (or night)! (more…)
A question that I hear frequently is: “Which programming language (or languages) should I learn? Usually the person asking is a student and what they really mean is, “What programming language will get me a job?!” My usual answer is that it’s more important to focus on learning concepts (like: inheritance, composition, polymorphism, data structures, design patterns, etc.) because these are pretty much the same regardless of language. If you learn C# in-depth, and then get a job where you need to use Java, you should be able to apply the concepts you know (and even a lot of the syntax) and pick up Java quickly. But, of course, you would still want to choose a language that is at least in the top dozen, as far as job demand. (more…)