I’ll try to get through this quickly so we can see some code, I know everyone wants to see codeStudent success:A very simple quick run-through:Student takes a survey about their college experience, we ask questions about everything from homesickness to financial means. Then we provide this information to the student so they can self-assess and see where their potential issues are and we provide it to faculty and it’s all downhill from there. We provide faculty ways to intervene, scheduling appointments, making phone calls, emails ,texts and then we also provide students with a way to communicate and hopefully make the barrier to getting help lesser.Benchmarking and analysis: This is where we started as a company, we provide standardized surveys for pretty much every corner of colleges and universities, from a resident life survey, to unions, and academic programs, and then schools use that to benchmark themselves against all the other schools which took the same survey. We provide a real robust reporting system that any data-geek would love.
Onto the topic at hand… mobile apps
----- Meeting Notes (5/3/13 01:00) -----Doing for 2 years this is our 3rd
The glue that allows us to do cross-platform so easily is Xamarin.Get into the details in a later slide… but … basically it compiles and runs natively on the devices with awesome performance. Effectively the same as writing the app in java or obj-c but with different syntax.Tons of fun using all the great c# features like LINQ, anonymous functions, etc. on fun devicesMicrosoft has spent SO MUCH time on c# and .net and Apple has spent so much time hardware it really feels like the best of both worlds.Xamarin brings them together, I saw a tweet last week that said “Xamarin is like watching a twilight zone episode where Microsoft did everything right”
Really the best of both worlds since some Xamarin apps are FASTER than native java apps because Mono is a much more mature VM than Dalvik.
Draw Stickman EPIC: 95% code re-use Android, ios, windows phone, took 4 hours to port it to a windows 8 app. Your mileage may vary.Bastion: Amazing game on the
I’ll be showing two examples, one a very basic architecture application that calculates a tip, a slight step up from hello world. And then I’ll show a full-fledged tablet application to show off the flexibility of the platform.Also run Visual Studio 2012 / Windows 7Xamarin.iOS and Xamarin.AndroidMac running Build-host to allow me to do iOS development on a windows machineOpen Source library MvvmCross to do 2-way binding between views and view models.
Cross platform development using c#
Chuck PinkertSoftware Engineer AdvancedEBI MAP-Works LLCCross PlatformDevelopment using C#
Student success and retention software forhigher education Benchmarking and analysis for highereducation Core applications built in ASP.NET with aSQL server backend
Our mobile applications iPhone and Android Users are Faculty/Staff and Students at schools using theMAP-Works platform. Faculty use it to get a quick “Talking-points” view of theirstudents Students and Faculty use it to schedule appointments, andcommunicate. And more…
Xamarin Product that uses the MONO runtime to allow C# code torun natively on devices Write code in Xamarin Studio on a Mac or Visual studioon a PC
Compiles straight into objective-c code, which directlycalls the iOS SDK Debug in simulator or on device Since it is C#, it has garbage collection Create interfaces using Interface Builder or Xamarin’sIOS designer Can import and bind any native iOS library Xamarin.iOS new version release the same day as Applereleases new iOS’s and includes beta access. Adds approximately 3 mb to app-size, this is the monoframework.Xamarin.iOS
Some C# code (mono) runs natively, all the restruns by calling Dalvik Java VM. Import and bind any native java JAR. Use native AXML for interfaces or the XamarinAndroid Interface Builder. Debugs on the device and simulator IntellisenseXamarin.Android
• Can use the same code-base as the mono-framework based Android and iPhoneapplications.Windows Phone
What all can be shared?• Data Layer• Data Access Layer• Business Layer• Service Access Layer• Application LayerWhat can’t / shouldn’t be shared?• User Interface Layer
Maximizing Code Re-use This means sharing 90% of your codeamongst platforms is not unreasonable. Keys to maximizing code-reuse Using MVVM pattern Share View-Models in the Core library. The only thing NOT shared is platform-specific UI. “Draw Stickman EPIC” and “Bastion” are greatexamples of apps with 90%+ of shared code withexcellent performance. Rdio
On to the Code!My Setup Xamarin Studio Xamarin.iOS and Xamarin.Android Open Source library MvvmCross to do 2-way binding between views and viewmodels.
Benefits of this code reuse Need another platform? “Just” create another UIproject Need to refactor? Change all the platforms atonce! ReSharper to the rescue. Need to test those changes? Run unit-tests onyour core project Tempted to write spaghetti code? UI-Views inthe ViewModel? Not happening! The best result of all… WRITE LESS CODE!