Saturday, December 28, 2013

#5 Article in Visual Studio Magazine for 2013

Greg Shackles and I write the Cross Platform in C# column for Visual Studio Magazine.  This column started in January 2012 with an email from Keith Ward regarding my interest in a monthly column on what was then called Mono for Android.  He had seen several of my articles already (I'm shocked he was interested because he HAD seen the articles) and had seen a good number of page views associated with them.  First off, I was pleasantly surprised.  It is an honor to have anyone think highly enough to want a guy that failed english in high school to want to write a column.  Secondly, I had to think on this for a while.  My friend Doug Turnure had asked me about joining a secret project at Microsoft to pump up the number of Windows 8 apps at launch.  Thankfully, that did not happen, at least they did not want me on it.  I never recieved any more info on it, so I just considered that they had enough people and weren't look for any more. 
Thinking through the specifics of the column, I knew that I could not do everything.  There would be times that I was off doing something and would not be available.  I spoke to a few people, but Greg Shackles expressed the most interest.  Greg was on board.  In April, 2012, the first article was published.  By the fall of 2012, I knew that the column needed to change to include MonoTouch for iOS.  At the time, MT only supported MonoDevelop.  We knew that the iOS Plugin for Visual Studio was coming (even though it was NDA at the time).  About 10 days before the announcement of Xamarin 2.0 (with the iOS Plugin for VS, the name changes, and the product enhancements), we got the confirmation that the actual product would ship in late February.  Unfortunately, due to things that our outside of our control, an article on the Xamarin.iOS Plugin for Visual Studio was not actually posted until April, 2013.  It is that article that is the #5 article on the VSM web site in 2013.  I assume that this is just for articles posted in 2013, but don't really know all of the specifics.
There are several groups that I would like to thank for this:
  • Keith Ward for the initial interest in the column.
  • The editors that have to read through my material.  They make Greg and I look good.
  • Greg Shackles for being my co-author on the column.  Greg and I work from a 2:1 split approximately on articles.  Without Greg, I would not be able to do this continually and the column would probably not exist.
  • The folks at Xamarin.  I know a good number of people there.  I am friends with many of them.  The reason I am friends with them is not because I somehow knew them before.  I am friends with them because based on my background, they are solving the client's problems in a way that makes sense.  These guys listen to the client and solve the problems that they can.  That is what I want in a development tools partner!  I especially want to thank Joseph Hill.  He has always been helpful to me.  He really has gone above and beyond what I would expect.
Having said all of this:
Once again, thank you for your help in 2013.  I hope that Greg and I can continue to earn your trust in 2014.

Tuesday, December 17, 2013

Take Advantage of iOS 7's New Features

On Sept. 18, Apple formally began distributing iOS 7 to users. Within one month, iOS 7 was running on 69.3 percent of iOS devices, according to app monitoring company Fiksu. On Sept. 20, Apple began selling the new iPhone 5s and 5c. While excitement surrounds the release of any new operating system, Apple creates additional excitement for developers, due to the rapid uptake of each new version of iOS.
With iOS 7, Apple has provided a number of new features worth getting to know. Since this column is called "Cross-Platform C#," the question of the length of time it takes Xamarin to provide support for new features comes up frequently. There's good news on that front, because Xamarin has provided same-day support for the latest version of iOS. This article will take a look at some of these new iOS features

Monday, December 16, 2013

Building Native User Interfaces is the Right Way To Build Cross Platform Style Apps

I hear a few developers getting down on Xamarin because they are required to:
  1. Create different projects for the various mobile platforms that they want to target.
  2. Learn the particulars of a given platform, or as I term them, the “isms.”
Interestingly, these are not negatives to going with a Xamarin style cross platform solution; these are most definitely positives in their style of solution.  Wait, how can this be?  Developers have been training to think that sharing as much code as possible (including the UI) is a good thing.  In this blog post, I’ll try to explain the issues of cross platform development, what users want (yes, I do tend to do crazy things like talk to users), the problems in cross platform development, and finally why presenting the user with a native solution is just plain better than a mobile web based solution.
What Users Want
Users want solutions to their problems.  It is pretty simple.  Solve a user problem, don’t create more problems, help the business cut costs, be a net positive in an organization, add value.  These are fairly simple items.  Unfortunately, a number of developers don’t quite understand this.  Many developers just want to write code, “But Wally, I just want to write code.  It is why I got into this job.”  Or, you may be a part of some IT group where you are seen as a cost center.  Whatever your position within the organization, getting out and talking to users has resulted in my finding the following items:
  • Users want applications that look just like all of the other applications on their platform.  Giving a user an application that looks like a Windows application while running on the Mac can result in some interesting feedback.
  • Users want applications that act just like all of their other applications on their platform.
Basically, this means that an application must call platform specific APIs and must do so fairly close to the application logic.  By doing this, the application will look, smell, and taste just like every other application on a platform.  An iOS application will look like iOS.  An Android application will look like Android.
History’s Lessons
I’ve done a little bit with cross platform tools in the past.  Early on in my career when I worked at The Cola-Cola Company, there was some involvement with:
  • PowerBuilder for the Mac.
  • Visual C++ for the Mac.  While this never shipped, it existed to the point of us getting an NDA. It may have only existed to create FUD.
After talking to users and working through some options, this is where I learned how important it is for apps to look like the other apps that users use.
A few years later, Java came on the scene.  Unfortunately, Java ran into several issues:
  • Java apps didn’t look like other apps on a given platform.  Swing came out later on and it provides a much more platform specific look/feel to it.
  • Early on, Java wasn't very fast, let's just be honest about it.
  • Java had small incompatibility issues between platforms.  Its promise of “Write Once Run Anywhere” had become “Write Once Debug Everywhere.”
  • There was no guarantee that the Java framework was on a device.  Expecting a user to install the framework was no realistic.
As we know from history, Java, while being widely used in the development area, never saw a great uptake in the consumer space.
Not long after Java, Microsoft .NET came on the scene.  Unfortunately Microsoft .NET never took over outside of the Windows space.  Its cross platform capabilities never really came about.
Now, I am sure that there is someone jumping up and down widely waving their arms and screaming “HTML5, HTML5 will save us.”  Ultimately, HTML was designed for the display of documents and content to users.  Back in the mid 1990s, the reason why HTML took off was due to:
  • Deploying most custom apps within a business was a nightmare.  Deploying apps to a web browser was much easier.  No dll hell, no installation programs to run, life was much better.  Imaging trying to do this outside of a company without a support staff?
  • Early web sites were much more about marketing.  Very few public web sites back then were about applications.  It took a few years for web sites to take on more of an application feel to them and now many have an app feel to them.
While there have been many attempts to give an HTML file device like capabilities, these capabilities always seem to be lacking in something.  Mobile web apps with HTML5 are no different.  There is always something that they can't do.  For example, I’m working with some folks that are trying their hardest to get out of phonegap due to limitations of the platform.  Now, I’m not going into the specifics on that, merely that there are issues and these aren’t the only folks with them.
Just so that we're clear on things, HTML web apps work out really well in a lot of situations.  I've written a lot of them.  I'm a Microsoft ASP.NET MVP (well at least for a little while longer).  I continue to work on several.  They just aren't the go to platform for mobile.

Developer Productivity
One of the big arguments I hear regarding using a single set of source files to build an application, is that this is more efficient for developers.  I agree, this is absolutely true.  Unfortunately, user productivity is 10-100x more valuable than developer productivity.  Increasing user productivity by a small percent multiplied by the number of users results in a greater increase in productivity.
But, But, But HTML5……While I will argue the point about user productivity increases dwarfing developer productivity, I’m not going to be unrealistic regarding what is happening in the marketplace.  There are some places where having a single set of course files is valuable.  These typically are:
  • The client only has a few shillings to pay for a solution.  The cost of an HTML5 mobile web solution is lower, let’s be honest about it.  You can get your neighbor’s kid to do the work.  This has a tendency to drive down the price. I’m just sayin’.
  • If your IT department is considered to be a cost center.  Build something, deploy it to a bunch of platforms, later, rinse, repeat.
Unfortunately, the problem with HTML5 is that you just can’t integrate with the platform as well as the client wants to.  Because HTML5 fits in a low cost area doesn’t mean that it fits everywhere.  A secondary issue is that as a client wants an application to grow and provide more functionality, a continually higher cost must be paid for this functionality.  Eventually, you will reach a point where the cost of a mobile web html5 solution meets and passes the cost of native mobile apps and still not providing the native experience.  What happens with that mobile web html5 solution?  It becomes a sunk cost.  You will end up throwing it away and pretty much starting over on the client side..
PhoneGap Will Save Us
Sorry folks, but PhoneGap isn’t the be all and end all.  PhoneGap is a container that embeds HTML, JS, and CSS content.  It allows access to device APIs in a cross platform way.  Unfortunately, you get access to content via a web view, so you are limited to what can be provided in the web view.  
I almost went down the PhoneGap route back in 2009, until I read the first announcement of MonoTouch (now Xamarin.iOS).
But I do Java, ObjectiveC, or something else
Ok, great.  There are tools for Java that allow you to write for iOS.  Unfortunately, that won’t help you with WP.  The same is true with ObjectiveC.
Why XamarinWhen Xamarin.iOS was first announced, I knew that was where I needed to be.  It provides:
  • Access to the native APIs directly from an application via the bindings contained in the various namespaces in Xamarin’s products.  If your application isn’t calling native APIs, your application will most likely have small things that are out of place in some way.  This immediately solved the problem that I had 20 years ago.
  • Access to the .NET framework that I already know. I don’t have to go learn ObjectiveC, Java, Xcode, Eclipse, or Android Studio.  I can use Visual Studio to develop apps for multiple platforms. I don’t have to go learn a new IDE.
  • Sharing non-device specific code between iOS, Android, WP, and other .NET platforms.
  • Learning the UI specifics and platform-isms allows you to build an application that integrates with the platform better than a shared application.
I have heard the chimes at midnight.  I have gone through the cross platform battles in the past.  The bottom line is that you have to create platform specific versions of your app.  I think that Xamarin is the right place for me.  I’ve learned my lesson. I’m calling native APIs with my language of choice, C#.
If you are interested in a discussion regarding Xamarin vs. Vendor Directed solutions, I suggest this discussion in the Xamarin forms:http://forums.xamarin.com/discussion/comment/36834  

Wednesday, December 4, 2013

Cross Platform with Visual Studio 2013 & Xamarin Meetup - Atlanta - December 11

I'll be at a Meetup in Atlanta on December 11, 2013.  I'll be talking about:
  • What is cross platform?  What is meant by it?
  • What are the options for cross platform?
  • What is Xamarin/what do they provide?
  • What can I do with Visual Studio 2013?
  • What are PCLs/linked files?  How to share business logic?
  • What about shared APIs?  What is Xamarin.Mobile?
  • What about Data?
For more information, check out the meetup site.

Wednesday, November 6, 2013

Webinar on Cross Platform Development with MonoTouch for the iPhone and Mono for Android on Wednesday

The iPhone and Android are dominant in the marketplace. The two platforms currently have 85% of the smartphone marketplace and are continuing to grow that marketshare. Developers are being tasked with targeting these two platforms. In this session, we’ll take a high level look at how we can use c# and .NET knowledge to share code between iOS and and Android. We’ll look at linked files, using the Xamarin Mobile API, the challenges of running across platforms and frameworks, as well as other features of Visual Studio, Monotouch, MonoDevelop, and Mono for Android that allows us to write as much code that can run on both platforms.

Friday, October 11, 2013

Async & Await in C# with Xamarin

One of the great things about the .NET Framework is that Microsoft has worked long and hard to improve many features. Since the initial release of .NET 1.0, there has been support for threading via .NET threads as well as an application-level threadpool. This provided a great starting point when compared to Visual Basic 6 and classic ASP programming. The release of.NET 4 brought significant improvements in the area of threading, asynchronous operations and parallel operations. While the improvements made working with asynchronous operations easier, new problems were introduced, since many of these operations work based on callbacks. For example:
  • How should a developer handle error checking?
  • The program flow tends to be non-linear. Fixing bugs can be problematic.
  • It is hard for a developer to get an understanding of what is happening within an application.
This article will look at how Xamarin has implemented the .NET 4.5/C# 5 support into their Xamarin.iOS and Xamarin.Android productions. There are three general areas that I'll focus on:
  • A general look at the asynchronous support in Xamarin's mobile products. This includes async, await, and the implications that this has for cross-platform code.
  • The new HttpClient class that is provided in .NET 4.5/Mono 3.2.
  • Xamarin's extensions for asynchronous operations for Android and iOS.
FYI: Be aware that sometimes the OpenWeatherMap API breaks, for no reason.  I found this out after I shipped the article in.

Thursday, October 10, 2013

What's new in Xamarin and iOS7 - webinar

I recently did an online webinar regarding the new iOS7 and Xamarin.  In it, I covered the basics of what is new in iOS7 along with what is new in Xamarin's developer platform.  Please take some time and view this webinar.  The items that were covered include:
  • What's new in iOS7.
  • The XCode Design Surface.
  • An example showing new iOS7 View Animations.
  • What's new with Xamarin and async, await, and HttpClient.
  • A demo of Razor Templating.
  • The Xamarin.iOS Plugin for Visual Studio.
  ** The video only works in Windows.  I don't control the content, so I have to go with what I am given. :-( **

Monday, September 16, 2013

Building a UI in Xamarin.iOS

No matter your feelings toward Apple, there's no denying the marketplace likes the iPhone and iPad family of products. You can't ignore them, and because you're reading this column, I thought it would be interesting to look at the options you have for creating a UI with Xamarin.iOS. There are two options I'll look at in-depth:
  • Using the XCode design surface integration with Xamarin Studio.
  • Programmatically creating controls.
The article is at: http://visualstudiomagazine.com/articles/2013/09/01/creating-a-ui-in-xamarin-ios.aspx

Thursday, August 29, 2013

Shrinking an image in iOS with Xamarin.iOS and C#

Images taken with the camera are rather large in the iPhone.  How do you shrink them down?  I need to shrink them because I am going to send them to a web service and I want to spend as little time as possible in the upload process.  While I am not sure that this is the best code, it seems to be working for me.  I want to put this out for sharing and if you have a suggestion on how to make it better, please let me know.
                UIImage img = UIImage.FromFile (fileName);
                var width = img.Size.Width;
                var height = img.Size.Height;
                var newWidth = defaultImageWidth;
                var newHeigth = height * newWidth / width; // I always hope I get this scaling thing right. #crossedfingers
                UIGraphics.BeginImageContext (new SizeF (newWidth, newHeigth));
                img.Draw (new RectangleF (0, 0, newWidth, newHeigth));
                img = UIGraphics.GetImageFromCurrentImageContext();
                UIGraphics.EndImageContext ();
  

HTML5 Threading with Web Workers and Data Storage with IndexedDB - MSDN Article

In a previous article, I looked at the HTML5
Note: The APIs for HTML5 vary slightly across different versions of browsers and different implementations. Because HTML5 is still in the recommendation phase at the W3C, you should think of it as a draft at this point. Because these APIs may change before they become a final standard, I cover only the version of HTML5 implemented in Internet Explorer 10. Every opportunity will be made to test the code across other browsers to verify that it works.
Url: http://msdn.microsoft.com/en-us/magazine/dn423698.as

Wednesday, August 28, 2013

Video and History support in HTML5 with Internet Explorer 10 - Article on MSDN

Who hasn’t started looking at the mobile Web and HTML5—features like the viewport, new HTML5 controls, geolocation and many others that are part of smartphones, tablets and advanced browsers? With these features, developers have started to provide users with fairly common, new input controls; jQuery Mobile features; location and mapping; and much more. In this article, I describe two features that you might not be familiar with: the
Url:  http://msdn.microsoft.com/en-us/magazine/dn423697.aspx

Sunday, August 25, 2013

Tech After Dark - Mobile Web Development - August 27-29

In the busy world of development, you barely have time to learn something new because you’re so busy dealing with the technology you’ve already got. Wouldn’t it be great to take control of your learning? But when? Your days are already spoken for.
Mobile development is a hot item. Customers are buying iPhones, iPads, Android devices, and many other mobile computing devices at an ever increasing record pace. Devices based on iOS and Android are nearly 80 percent of the marketplace. RIM continues to be dominant in the business area across the world. Nokia's growth with Windows Phone will grow on a worldwide basis.
At the same time, clearly web development is a tremendous driver of applications, both on the public Internet and on private networks. How can developers target these various mobile platforms with web technologies? Developers can write web applications that take advantage of each mobile platform, but that is a lot of work.
Into this space, the jQuery Mobile framework was developed. This eLearning series will provide an overview of mobile web development with jQuery Mobile, a detailed look at what the jQuery Mobile framework provides for us, how we can customize jQuery Mobile, and how we can use jQuery Mobile inside of ASP.NET.

Wednesday, August 21, 2013

UIRefreshControl Timeout with Xamarin.iOS

The UIRefreshControl doesn't have a timeout mechanism built into it.  Once the refresh begins, the control will display that a refresh is occurring until the .EndRefreshing() method is called.  Because we are in a mobile environment, the data may never come back.  We don't want to display the UIRefreshControl forever.  Solving this problem is actually pretty simple.  Setup a timer and when the timer runs, call .EndRefreshing().  Here is some code I used for this:
nstRefresh = NSTimer.CreateScheduledTimer( new TimeSpan(0,0,20), delegate{
BeginInvokeOnMainThread(delegate{
if( uir.Refreshing )
{    
       uir.EndRefreshing();
}
});
nstRefresh = null;
});
 
I hope that this helps 

Tuesday, August 20, 2013

Using the UIRefreshControl with the UICollectionView in Xamarin.iOS

If you have used Twitter on an iPhone, you are familiar with the concept of pull to refresh.  When you work with a UITableViewController, there is a .Refresh property that can be used to assign  a Refresh Control to.  A UICollectionViewcontroller has many similarities.  Unfortunately, the .RefreshControl property is not one of them.  How in the heck are you supposed to provide the same functionality in the UICollectionViewController?  It is actually rather simple, but not documented by Apple.  I found this on Stack Overflow and translated it to Xamarin.iOS.  The steps are:
  1. Create the UIRefreshControl just like you would with the UITableViewController.  Set properties on the UIRefreshControl just like you have previously.
  2. Add the UIRefreshControl as a subview on the UICollectionViewController's .CollectionView. 
There you go, now pull down in your UICollectionView in the UI and boom, there you have what you want.

Thursday, July 18, 2013

Mapping and Location with Xamarin.Android (formerly Mono for Android)

Real Estate is all about location, location, location. Mobile is about maps, location and maps. Maps are an excellent mechanism to communicate information about locations. Maps are graphical, and you know that a picture is worth a thousand words. When users are mobile, presenting a user with a map provides him with easy-to-understand location information in a graphical format. Android provides full mapping support to present maps to users along with a programmable API. In this article, I'll introduce the mapping and location APIs in Mono for Android.  

Tuesday, July 16, 2013

Article - Create a MapView in Google Maps for iOS

With the introduction of iOS 6 in September 2012, Apple Inc. removed the map system based on Google Maps and introduced its own map system for iPhone and iPad users. The introduction of Apple Maps, like any new technology, came with its own problems.
In December 2012, Google released its Google Maps SDK for iOS. (Check the Google Maps SDK for iOS page for additional documentation as new features are deployed to the product.) Google Maps for iOS has a long, solid track record, given the use of its data in Android and many years of usage. The introduction of Google Maps for iOS has resulted in a measurable increase in the number of users who have updated their existing iPhones from iOS version 5 to iOS version 6. This article will look at using Google Maps for iOS using Xamarin.iOS.
Article url: http://visualstudiomagazine.com/articles/2013/06/01/how-to-use-google-maps-for-ios.asp

Wednesday, May 15, 2013

Mapping and Location in iOS and Android at Xamarin Evolve 2013

The following is a link to my talk on Mapping & Location in iOS and Android at Xamarin Evolve 2013.  Obviously, the talk is centered on MonoTouch, aka Xamarin.iOS, and Mono for Android, aka Xamarin.Android.  In this talk, I cover the native functionality of each platform.  In addition, I cover Google Maps for iOS SDK.  I hope that you find the talk to be helpful.
http://xamarin.com/evolve/2013#session-d336r1byq5

Tuesday, April 23, 2013

Testing WebAPI with Fiddler

I was wanting to test some WebAPI Methods via Fiddler so that I could all be working on one machine, debug, and make sure that everything is working.  Here is what my fiddler setup looks like:
 
We're calling into a method with the signature:
        public List Post([FromBody] UserLocation value)
        {
//............
        }
 
The UserLocation object has the following signature;
    public class UserLocation
    {
        public string AppKey { get; set; }
        public double Latitude { get; set; }
        public double Longitude { get; set; }
    }

Monday, April 22, 2013

Xamarin.iOS Visual Studio Plugin Article

Developers working with Xamarin MonoTouch have been stuck with developing on a Macintosh and working with MonoDevelop. This hasn't been a bad thing. The Apple iOS SDK only runs on the Mac, so this requirement hasn't been a major limiting factor in iOS development.
Unfortunately, .NET and C# developers are used to using Visual Studio. Microsoft has spent a lot of time, effort and money to make Visual Studio the premier software development tool in existence. Xamarin Inc. has heard from those developers who want to integrate Visual Studio with iOS development. On Feb. 20, Xamarin introduced Xamarin.iOS for Visual Studio. This plug-in allows developers using Visual Studio to write iPhone and iPad applications for the iPhone using the Microsoft .NET Framework and C#.

Friday, March 22, 2013

Juice Up Your Android UI

Recently, I wrote an article for our Mono for Android column about improving your user interface of your applications.  The url is:http://visualstudiomagazine.com/articles/2013/03/01/enhancing-your-uis.aspx
I hope that you enjoy the article.  I spent a lot of time on the article plus, helping out users and creating applications that are helpful to them is a personal/pet project of mine. 
One thing that I wanted to mention in the article and could not besides a side mention is the part about reverse geocoding.  Reverse geocoding is the process of taking a latitude/longitude and getting back an address.  Users are familiar with addresses, not latitude/longitude.  Unfortunately, I was not able to show the Android reverse geocoding that is built in.  Why?  Well, at the time, I was pre-release tester of what would become Mono for Android 4.6 and all the new stuff inside of it.  I couldn't come out and say that's why this didn't work and I was not comfortable trying to go ahead with the code anyway.  I know that the code worked in previous versions.  Unfortunately, deadlines will sometimes hit you over the head when you don't expect it.  Bottom line: I apologize to you the reader.  I will have an article out on mapping at a later time and I will discuss reverse geocoding there.

Wednesday, March 6, 2013

Mobile Web Development Featuring jQuery Mobile

I'll be doing a seminar on jQuery Mobile on April 23.  I hope that you can attend.  Here is the info:
Start: 4/23/2013 11:00 AM (UTC -05:00) Eastern Time (US & Canada)
End: 4/23/2013 4:30 PM (UTC -05:00) Eastern Time (US & Canada)
Rates: $199.99

Mobile development is a hot item. Customers are buying iPhones, iPads, Android devices, and many other mobile computing devices at an ever increasing record pace. Devices based on iOS and Android are nearly 80 percent of the marketplace. RIM continues to be dominant in the business area across the world. Nokia's growth with Windows Phone will grow on a worldwide basis. At the same time, clearly web development is a tremendous driver of applications, both on the public Internet and on private networks. How can developers target these various mobile platforms with web technologies? Developers can write web applications that take advantage of each mobile platform, but that is a lot of work. Into this space, the jQuery Mobile framework was developed. This eLearning series will provide an overview of mobile web development with jQuery Mobile, a detailed look at what the jQuery Mobile framework provides for us, how we can customize jQuery Mobile, and how we can use jQuery Mobile inside of ASP.NET.

Sessions (each session runs approximately 75 minutes):


Session 1: Mobile Web Development

    Are you wondering what web developers can do in the mobile world?  This session will focus on:
  • What web developers need to know about the idiosyncracies of mobile development
  • Tools to use for mobile development
    • ASP.NET development options: Webforms v MVC v Web Pages
    • Web browsers
  • Javascript language features useful for mobile web development
  • Integrating with the Phone
  • Meta tags to improve the user experience

Session 2: jQuery Mobile

You are probably aware of the jQuery javascript library. This seminar will introduce jQuery Mobile, a library that will make the development of web applications for mobile devices easy. We’ll look at the basics of jQuery Mobile, including
  • Page Setup
  • Toolbars
  • Navigation
  • Integrating basic controls with jQuery Mobile
    • Buttons
    • List components
    • Form/UI components
  • Basic options for jQuery Mobile
  • AJAX operations with the ListView

Session 3: jQuery Mobile Advanced with ASP.NET

jQuery Mobile allows developers to create an application with a mobile-specific user interface. There are many options to optimize and change the default behavior of jQuery Mobile, as well as how ASP.NET developers can easily integrate with jQuery Mobile. This session will look at
  • Creating a Template for ASP.NET developers
  • Creating a custom theme
  • Build one ASP.NET Page with jQM Themes to target multiple devices
  • Offline operation and the application manifest
  • Plug-ins and optimizations for tablets
  • jQM Events

 

Instructors


Wally McClure graduated from the Georgia Institute of Technology (Georgia Tech) with a BS & MS in Electrical Engineering. Since that time, he has done consulting and development for companies large and small. Wally has authored books on iPhone Programming with Mono/Monotouch, Android Programming with Mono for Android, application architecture, ADO.NET & SQL Server, and finally AJAX. He is a Microsoft MVP and an ASPInsider, and a partner in Scalable Development, Inc., where we're ramping up to provide training on iPhone, Android, and HTML5.

 

Customer Service

If you have any questions regarding this event, the registration process or would like to register more than one attendee, please contact us directly.
Email: service@devproconnections.com 
Phone: 800-793-5697 or 913-967-1719

Monday, March 4, 2013

Free Xamarin Studio and Free Chapters 1-4 Professional Android Programming with Mono for Android and .NET/C#

On February 20, Xamarin announced a new version of MonoDevelop called Xamarin Studio. We've been big fans of Xamarin and Miguel de Icaza's work all the way back to the inception of the Mono project so we're especially amped to see Xamarin release a Free Starter Xamarin Studio to bring this great mobile development tool to an even bigger programmer audience.
Professional Android Programming with Mono for Android and .NET/C#In the spirit of free then, we're happy to share this free starter from Wrox's Professional Android Programming with Mono for Android and .NET/C#. Download this free starter is a PDF with chapters 1-4 of the book to get you started developing Android apps in the Xamarin tools. While the new Xamarin tools have changed a bit, we do still think these chapters will be useful if you're new to using Mono and Xamarin for Android development. Here's the outline of what's covered in these free Mono for Android chapters. We hope if you find this useful, you'll come back and buy the complete book from Wrox here at Wrox.com or at your favorite book retailer.

Chapter 1: Introduction to Android, Mobile Devices, and the Marketplace

  • Product Comparison
  • Mobile Development
  • Android
  • Cross-Platform Alternatives
  • Summary

Chapter 2: Introduction to Mono for Android

  • Before You Begin Developing
  • Visual Studio Development with Mono for Android
  • Mono for Android Development with MonoDevelop
  • Summary

Chapter 3: Understanding Android/Mono for Android Applications

  • What Is an Android Application?
  • Binding the Components: The Android Manifest
  • Summary

Chapter 4: Planning and Building Your Application's User Interface

  • Guidelines for a Successful Mobile UI
  • Building an Android UI
  • Choosing a Control Layout
  • Designing Your User Interface Controls
  • Controlling Your Menus
  • Resolution-Independent UI
  • Constructing a User Interface: A Phone and Tablet Example
  • Summary

Monday, February 18, 2013

MonoTouch Training Course now online: iOS 6 PassKit Coding and Events

Course Description: So what is a PassKit, this course will introduce you to the PassKit , the types there are, the file structure, security and other items. Next you‘ll be shown how to create a PassKit manually with such things as provisioning, KeyChain access and other items. Then you will learn about coding for a Pass, including complain applications, classes, list of passes to name a few items that will be covered. Next you will learn about reminders and events. You’ll see the EventStore, Enumerate Calendars, create an event, and create a reminder, running a query plus more.
1+ hours of media runtime 
PassKit Intro
  • PassKit Agenda
  • What is PassKit
  • PassKit Ecosystem
  • What is a Pass
  • Types of Passes
  • File Structure
  • Pass.json File
  • Barcodes
  • Relevancy
  • Localization
  • Security
  • Passbook
  • Getting Passes into Passbook
Manually Create a PassKit
  • Create a Pass Manually
  • Provisioning
  • Created
  • Certificate Signing Request
  • KeyChain Access
  • Certificate Request
  • Pass Certificate Created
  • Download
  • Build the Signpass Utility
  • Must Update
  • Run the Signpass Utility
  • Manifest.json Output
  • End Result
  • Resources
Coding
  • Companion Applications
  • Passes and MonoDevelop
  • Classes
  • Check Passbook Availability
  • Pass Library Instance
  • List of Passes
  • Displaying a Pass
  • Loading a Pass From a File
  • Replace an Existing Pass
  • Editing a Pass
  • Receiving Change Notifications
  • Resource
  • Demo: Passes
  • Demo: Pass Code
Reminders and EventKit
  • Agenda
  • EventStore
  • Accessibility
  • Requesting Access
  • Objects
  • Enumerate Calendars
  • Add or Modify an Event
  • Create an Event
  • Create a Reminder
  • Retrieve an Event
  • Retrieve a Reminder
  • Deleting an Event
  • Search for Events
  • Search for Reminders
  • Demo: EventKit
  • Demo: Reminders
  • Demo: Running a Query
  • Resources

Thursday, February 7, 2013

iOS6 for .NET & C# Developers with MonoTouch - New UI Controls

Course Description: The User Interface (UI) has become a very important part of any application. This course will cover application UI in iOS 6. You will see the UI refresh control and how to have the UI refresh in an application. Then you will look at UI collection view and how work with data, cells and other items. Then the course will cover layout and display. You will see section inset, sub classing layouts and how to create linear and circular layouts.
1+ hours of media runtime
User Interface
UI Refresh Control
  • Pull to Refresh
  • UI Refresh Control
  • Begin/End Refreshing
  • Other Members
  • What About iOS5?
  • Demo: iOS6 UI Refresh Control
  • Demo: iOS5 UI Refresh
UI Collection View
  • UI Collection View
  • Data
  • UI Collection View Cell
  • Cells
  • Supplementary Views
  • Decoration Views
  • Delegate
  • Cell Highlighting
  • Disabling Selection
  • Cell Menus
  • Demo: UI Collection View
Layout and Display
  • Layouts
  • Section Inset
  • Subclassing Layouts
  • UI Collection View Flow Layout
  • Custom Layouts
  • Demo: Linear Layout
  • Demo: Circular Layout
  • Key Takeaway

Friday, February 1, 2013

Introduction to iOS6 Social Networks with MonoTouch

Check out this introduction to iOS6 Social Networks with MonoTouch: http://youtu.be/t-kGZQtKSp8
I hope you enjoy this video 
https://youtu.be/t-kGZQtKSp8

Tuesday, January 29, 2013

MonoTouch: iOS 6 Introduction, Social Media & Maps - Online Training with LearnNowOnline

One of my training courses has just been published by LearnNowOnline. I hope you find it helpful as you take up iOS 6 Development with MonoTouch. Here is some info about it below. Link: http://www.learnnowonline.com/learnmobilenow/topic/296
Course Description: This course takes a look at the iOS6 operating system and creating applications with MonoTouch. The course will start with an introduction to iOS 6 how it has grown, software support, how to support the older iOS systems plus other items. Next the course will dive into social web sites like Twitter and Facebook and incorporating updates into an application. Then the course will look into existing mapsand the new maps API. 
Overview of iOS6
Introduction
  • Agenda
  • New Features
  • Development Requirements
  • iOS6 Growth
  • Software Support
  • How to Support Older iOS
  • Using the Older iOS/Xcode SDK
  • Display
  • iPhone Startup Images
  • Retina Images
  • Other Images
  • Screen Dimensions
  • Demo: Images
  • Demo: Selecting Images
Introduction Continued
  • ViewWillUnload, ViewDidUnload
  • DidReceiveMemoryWarning
  • ViewWillDisappear
  • Interface Orientation
  • UI Navigation Bar
  • Demo: Memory Warning
  • Demo: Orientation Changes
  • Demo: UINavigationBar
Social Improvements
Social Twitter
  • Demo: iPhone Twitter App
  • Demo: Twitter App Code
  • Social Improvements
  • Social Networks
  • Twitter Account Setup
  • Sending Tweets
  • Completion Handler
  • Calling Twitter API
  • Demo: Calling Twitter API
Social Facebook
  • Facebook
  • Post to Facebook
  • Completion Handler
  • The Facebook Graph
  • Demo: Facebook Code
  • Demo: Facebook Graph
Maps
Existing Maps
  • Apple Maps
  • Map Initialization
  • Other Methods and Objects
  • Annotations
  • Overlays
  • Demo: New Apple Maps
  • Demo: Map-Kit Maps
New Maps API
  • New Features
  • MKLaunchOptions
  • Demo: Apple Maps