Xamarin Certification Exam Study Guide
Are you studying for the Xamarin Certified Mobile Developer exam? It’s a pretty daunting exam, there is just such a large amount of material covered. So I thought I’d share my experiences and topics covered during my certification exam to help others on their way.
A study guide, if you will.
Disclaimer: The information I present here is only based on my exam experience. My understanding is that the question set is pulled from a pool of questions – so maybe you’ll get some of these topics, maybe you’ll get something else all together . I also did the exam before the explosion of Xamarin.Forms so no doubt there will be lots of questions about that.
Number of Questions
150 multiple choice questions
Question Format
Multiple choice questions. Most of the multiple choice questions were “choose the right answer” intermixed with a couple of “select all that apply” and a few “true/false”.
Exam Duration:
3 Hours (it took me the entire time)
Study Materials
- The Xamarin University courses and tutorials / workshops in each session. I would recommend doing each course twice if you have time. It is definitely actually worth working through all the samples (and where possible extending them to challenge yourself).
- Studyguide for Xamarin Mobile Developer exam – Kaj Bonafils has a good set of links into the Xamarin Documentation.
- The Official Xamarin Documentation. Not only is the Xamarin Documentation fantastic, I’m pretty sure just about everything in the exam is covered *somewhere* in the official docs.
- Xamarin Forums: Lots of good information in here including this: Exam Study Guide?
Subjects Covered (in my exam)
iOS Specific
- How do you choose a contact using the system user interface?
- How do you wrap Objective-C Libraries
- What are iOS Binding Projects used for
- Background Tasks
- Profiling Applications with Apple SDK Tools
- Understand the info.plist
- RegisterAttribute
- Apple Application Lifecycle
- WCF Bindings Support
- Memory Management
- Provisioning Profiles, CSR’s etc.
- Retina Image naming standards
- Universal iOS Apps
- AppDelegate
- WeakReference
- UIImage – Loading and Caching, Bundles and Fields
- Gesture Recognizers
- Ahead of Time Compilation (AOT)
- How can you move controls around in code?
- UITableViewController
- UITableViewSource
- Storyboards
- Mixing Storyboard and XIB UI’s
- UIWindow
- Supplementary Views
- Collection Views
- UITabBarController + Badges
- MVC Model in general and the roles of the Model, View and Controller
- UINavigationController
- UINavigationBar
- Basic map integration (MKMapView)
- How do you perform a search on map
- How do you customise a pin on the map
Android Specific
- Limitations of the emulator (why do you need to use a real device) (HAXM)
- Memory Management
- How does Garbage Collection work?
- Embeding assemblies in native code
- How do you specify the starting activity in Android
- Activity States (eg. Active, Paused etc.)
- Java Binding Libraries
- Resource folder Names
- Default Resources
- Asset Folder
- Resource Files (and build actions)
- Adding to the Android Options Menu
- Services in Android
- ListView Properties and Methods
- Reusing Cell views
- Adapters, BaseAdapter Properites and Methods
- Luanching Web Pages from an Activity
- ActionSend action
- Running an Activity on the UI Thread
- Android Application Lifecycle
- Activities (Props / Methods / Lifecycle)
- LinearLayout and RealativeLayout
- AndroidManifest.xml
- LocationServices in Android
- Android Versions and Minimum Android Version project option
- Context Object
- DrawerLayout
- Android Support Libraries
- Targetting different versions of Android
- Android Device Log
- Just-in-time Compilation (JIT)
- Bundles
- ResourceIds and Elements
- Deploying to the AppStore
- Widgets
Cross Platform
- Cross Platform code sharing stategies and architectures (eg. PCL’s, Interfaces and Abstract Classes, Conditional Copilation)
- Layered Architecture and it’s benefit (eg. Application Layer / UI Layer)
- Understanding the UI Thread, when you should use it, when you shouldn’t and how to get invoke on it.
- Xamarin.Social (high level)
- Xamarin.Mobile (high level)
- UI Navigation Patterns
- File Linking vs PCL’s
- Isolated Storage
- Consuming JSON
- WebRequest, WebClient, HttpClient
SQLite
- Creating schemas in SQLite
- Cursor Adapter
- How to access SQLite in Xamarin.iOS and Android
Portable Class Libraries
- What are the limitations on what PCL’s you can use in Xamarin
- How do target platforms effect usability of PCL’s
- Dependency Injection
Other
- What are the limitations of the various editions of Xamarin?
- Differences between capabilities of Visual Studio and Xamarin Studio on the various OS’s
- How do the SGen and Boehm Garbage Collectors work? Pros and Cons
- High Level understanding of Azure Mobile Services
- async / await
- Task Parallel Library (TPL)
- Adapter Pattern
- Facade Pattern
- Singleton Pattern
- MVVM Pattern
- Inversion of Control (IoC)
- REST
Please feel free to ask questions and/or let me know if you had some other topics covered, so we can add to the list to help other future exam takers.
And lastly,
Good Luck