Disclaimer: this is an automatic aggregator which pulls feeds and comments from many blogs of contributors that have contributed to the Mono project. The contents of these blog entries do not necessarily reflect Xamarin's position.

July 28

Amazon Web Services Mobile SDKs for Xamarin Now Available

Amazon Web Services LogoToday, we’re excited to share the launch of the Amazon Web Services (AWS) Mobile SDKs for Xamarin. With these new SDKs, developers can easily connect their high-performance, native Xamarin apps to Amazon’s powerful array of AWS cloud services.

AWS SDK for Xamarin logoAWS platform services provide several powerful solutions, including: identity management through Amazon Cognito Identity, Amazon Cognito Sync, Amazon Simple Storage Service cloud storage, Amazon DynamoDB’s fully managed database, Amazon Mobile Analytics, and Amazon Simple Notification Service for mobile push notifications.

The AWS Mobile SDKs for Xamarin allow you to use a shared C# codebase to connect your native Xamarin iOS and Android apps to any of these AWS services. For example, you can use Amazon Cognito Cloud Sync to synchronize app states between devices for a seamless, cross-device experience and use Amazon S3’s cloud storage for easy access to critical documents and content.

Integrating the AWS Mobile SDKs for Xamarin into your mobile apps is simple.

Getting Started

This example will show you how to get started with Amazon Cognito Cloud Sync:
AWS Cognito SDK

In your app, you will need to initialize a CognitoSyncManager and open a dataset using the Identity Pool ID and Region Endpoint of the pool you just created:

public Dataset GetDataset ()
{
	// Login and open/create the dataset
	var credentials = new CognitoAWSCredentials ("identity-pool-id", RegionEndpoint.USEast1);
	// Optional: Add credential login to associate data to a user
	// credentials.AddLogin ("graph.facebook.com", "FB_AUTH_TOKEN");
	var syncManager = new CognitoSyncManager (credentials,
new AmazonCognitoSyncConfig { RemoteEndpoint = RegionEndpoint.USEast1 });
	var dataset = syncManager.OpenOrCreateDataset ("TODO_LIST");
	return dataset;
}

If you would like your dataset associated to a particular user, enabling the user to share the same data across devices and platforms, you will need to set up an identity provider. Cognito supports Facebook, Google+, Twitter, Amazon, OpenID, or a custom Developer Authenticated Identity.

If you use Facebook authentication, you can use the Facebook Components to authenticate your users after you’ve configured your App ID in the Cognito portal, and then add the authentication token to your credentials before opening your dataset:

credentials.AddLogin ("graph.facebook.com", "FB_AUTH_TOKEN");

You can store any information you’d like in your dataset by specifying an ID and an arbitrary value (in this case a JSON string). After you call the async Sychronize() method, your data will be pushed to the cloud:

public async Task CreateTodoItem (string title)
{
	var dataset = GetDataset ();
	// Create a new todo list item
	var todoItem = new TodoItem ("Pick up some milk");
	// Serialize the object to JSON and put it in the dataset
	dataset.Put (todoItem.Id, JsonConvert.SerializeObject (todoItem));
	// Synchronize changes to the cloud
	await dataset.SynchronizeAsync ();
}

You can also easily fetch all of the items in your dataset from the cloud on any device:

public async Task<IEnumerable<TodoItem>> GetTodoItems ()
{
	var dataset = GetDataset ();
	// Synchronize any changes
	await dataset.SynchronizeAsync ();
	// Deserialize the records' values from the dataset
	return dataset.Records.Select (r =>
                JsonConvert.DeserializeObject<TodoItem> (r.Value));
}

AWS and Xamarin take the hard work out of adding a complex backend to your apps, giving you a flexible, scalable way to go mobile. Be sure to check out all of the AWS SDK Components in the Component Store today!

The post Amazon Web Services Mobile SDKs for Xamarin Now Available appeared first on Xamarin Blog.

July 27

Join Xamarin at AnDevCon 2015 in Boston

Join Xamarin in Boston, MA from July 30-31 for AnDevCon 2015, the technical conference for software developers and engineers building Android apps. Key members from the Xamarin team will be available to discuss your apps and projects and show you what’s new across our products.

AnDevCon 2015 Boston Banner

We’re excited to give AnDevCon 2015 attendees a close up look at Xamarin Test Cloud, which we recently announced will be getting support for Appium and its multiple language bindings, including Java, JavaScript, Python, and PHP. You’re invited to join our early access program, and we’ll have members from our Xamarin Test Cloud team onsite at the conference to answer any of your questions.

Come visit us at booth #803 and say hello if you’re at the conference — we look forward to seeing you in Boston!

The post Join Xamarin at AnDevCon 2015 in Boston appeared first on Xamarin Blog.

July 25

The end of NRefactory 6

I've been developing for NRefactory several years now after the roslyn release I made a new 6.0 version. For the 6.0 version there are bad and good news.
The bad news is that it's no longer in development.

The good news is that the successor of the refactoring part is (RefactoringEssentials). The rest of the code has been moved to the monodevelop source code and is still available and in active development as open source.

So the 5.0 version will remain - and will be still maintained a bit by Daniel Grundwald and me.

Why was this decision made ?

Mostly because most NRefactory6 code was just wrappers around internal roslyn classes (and making them public). I don't think that it's worth as a stand alone library.
Since #Develop was discontinued the 2nd big NRefactory user is no longer around and it's more time effective to move that code to monodevelop and split the refactorings so they can be used in VS.NET 2015 as well.

So I deleted the NRefactory6 today. Bye NRefactory we had a nice time - and hello RefactoringEssentials :)

July 24

More Awesome Content from Our Community

Xamarin developers not only build amazing iOS and Android apps in C#, but love contributing to the Xamarin community through blog posts, components, plugins, and podcasts. The links below will take you to some of favorites over the past few weeks:

Podcasts

Yet Another Podcast with Jesse Liberty

James Montemagno and Jesse Liberty discuss all things Xamarin.

  • Yet Another Podcast – James Montemagno joins Jesse Liberty discuss all things Xamarin, including My Shoppe, Moments, and Xamarin Dev Days.

Great Blog Posts

Awesome Xamarin.Forms Blog Posts

Adam Wolf’s card UI with a drop shadow using Xamarin.Forms.

Thanks to these developers for sharing their Xamarin knowledge with the rest of the developer community. If you have an article or blog post related to Xamarin development that you would like to share, please let us know by tweeting @XamarinHQ and it may be featured in an upcoming community content roundup.

The post More Awesome Content from Our Community appeared first on Xamarin Blog.

July 23

Build Your Own Messaging App in XAML

One of the most popular features of Xamarin.Forms is the ability to use your existing XAML experience to build UIs for iOS, Android and Windows Phone. Moments, a Snapchat clone built with Xamarin.Forms and Microsoft Azure, originally made use of the C# API for creating user interfaces. Today, I’m happy to announce that Moments has been expanded to include a XAML implementation as well, so you can build your own Snapchat clone in XAML today!

Moments, a Snapchat clone built with Xamarin.Forms and Azure.

Build Cross Platform UIs in XAML

If you are coming from a Windows background, Xamarin.Forms XAML will feel right at home! If you aren’t, there are still plenty of great reasons to build your user interface using XAML.

Readability

XAML is often more succinct and readable than the equivalent code in C#. This is especially true when building complex view hierarchies with multiple layouts. Additionally, the parent-child hierarchy inherent in XML allows XAML to mimic the hierarchy of user interface objects with greater visual clarity.

Separation of Concerns

Rather than having an entire page represented in one file, XAML allows you to clearly separate views from the accompanying logic associated with the view, thus making your application more modular.

MVVM Data Binding & Commands

The Model-View-ViewModel (MVVM) architectural pattern is very common in mobile development today – and for good reason. Traditionally, MVVM allows you to further enforce separation of concerns by separating the user interface from the data, with a bridge called a view model. Typically, mobile developers can share the model and view model with all target platforms, while writing the view for each individual platform. With Xamarin.Forms, everything can be shared, including the view. XAML makes using the MVVM pattern easy through data binding and commands, which allow your view and view model to communicate with ease.

Build Your Own Snapchat Clone Today

Moments is a great sample app for seeing everything Xamarin.Forms has to offer. If you’ve ever wondered how to use custom controls from XAML, use markup extensions, implement styling, or enforce the MVVM architectural pattern through data binding and commands, Moments is the sample app for you. Moments is completely open-source and freely available under the MIT license, so building your own Snapchat clone based on Moments is easy. Follow the steps listed here, and you’ll be sending selfies to all your buddies in a matter of minutes!

The post Build Your Own Messaging App in XAML appeared first on Xamarin Blog.

Unite Boston update: Early Bird ticket sales end tomorrow. Partial schedule is up!

Unite Boston is just two months away! Early Bird ticket pricing ends tomorrow (Friday, July 24), so be sure to register now to save $70!

As a reminder, the conference will take place at the John B. Hynes Veterans Memorial Convention Center in Boston on September 21-23. All details here: http://unity3d.com/unite/boston

A partial conference schedule is available including sessions to be presented by experts in the Unity community. Scroll down to view the list (note: date/time of sessions still subject to change). Sessions range in topic from postmortems and best practices to tech-intensive and specific workflow presentations.

Details regarding sessions given by Unity reps will be added soon. In the meantime, here is what you can expect:

  • A rich and inspiring keynote – details to come!
  • Deep tech dives with the latest Unity features, including the latest graphics, animation, physics, multiplayer, VR, cross-platform, Analytics, Ads and Cloud Build features
  • The Roadmap talk: it’s standing room only at this session where you can ask anything about the awesome new tech that is coming up in Unity 5 and beyond!
  • Ask the Experts, where Unity engineers will be available to help you with your unique development challenges

In addition to the learning and networking, there’s still a chance to submit your game for the 8th Unity Awards!
Hurry, we close submissions on July 31, 2015. Details here.

Here is the first batch of talks presented by experts in the Unity community. More to come (date/time of sessions still subject to change):

11 Games for 30 Players in 12 Months by Peter Vigeant (ESC) – 09/23/15 01:30 PM

ESC is a new, unique gaming platform where up to 30 players are immersed in a world supported by professional lighting and show effects, surround sound and a 30-foot curved screen that projects all of the action. Our team worked over five years to bring the experience to life and early this Spring, the first two public locations opened in Philadelphia and Riverside, California, with a third on the way. Discover the lessons learned and challenges faced as Kevin Harper, the lead developer, and Pete Vigeant, the lead game designer, present the story behind the 11 launch titles of ESC.

vigeant

5 Must Know Design Strategies for Better VR Games by Nicole Lazzaro (XEODesign) – 09/21/15 04:00 PM

Virtual Reality. From the dawn of time games have always created it. It’s the magic circle where we transport our players for a few minutes, a few hours, a few days even years. With today’s new Virtual Reality Headsets and AR Smart Glasses we finally reach the intersection of movie like immersion and the interaction possibilities of games. On one hand Virtual Reality offers an unprecedented theater for engagement on the other it presents more physiological, psychological, and gameplay challenges than all other platform shifts in game’s history combined. The talk presents the 5 most common mistakes VR/AR developers make discovered in XEODesign’s year of VR research. We then present practical VR design strategies to overcome them. If you want to ship a VR/AR game and not a barfatorium you must see this talk!

lazzaro

A coder’s guide to spline-based procedural geometry by Joachim Holmér (Neat Corporation) – 09/21/15 02:00 PM

Procedural generation is a popular approach for creating content thanks to its flexibility and scalability – but how do you actually do it? This talk will blast you through everything you need to know for creating procedural geometry and manipulating them with splines.

holmer

A Little Math for Your Big Ideas by Ziba Scott (Popcannibal) – 09/22/15 01:30 PM

Unity has democratized game creation. Developers with wildly varying training and backgrounds are making brilliant games. Don’t let your “non-traditional” background stop you from chasing your best world bending ideas.

Feel a rush of empowerment as we adventure through simple examples of vector math and world/local space transforms to build a multi-threaded buoyancy system.

Topics: vector manipulation (addition, scaling, cross product, normalizing, comparing), World/local space transforms, thread safe operations, reducing garbage collection, buoyancy.

Best Practices for Multiplatform Distribution by Robert Baily (JumpStart) – 09/22/15 11:30 AM

From the creators of School of Dragons, the wildly popular MMORPG based on DreamWorks Animation’s How to Train Your Dragon franchise, comes the best practices in multiplatform distribution. Available via Amazon, Google Play, Windows, the App Store, and Steam – among other platforms – School of Dragons has grown to more than 15 million players worldwide. Its creators will share insight in the areas of art, asset processing, build automation, runtime configuration, and auditing for developing multiplatform games.

baily

Building Smart Toys with Unity by Jean-Philippe Auclair (Frima Studio) – 09/22/15 02:00 PM

Who has not heard of Skylanders, LEGO Dimension, the new talking Barbie or Disney Playmation? In this talk we’ll show you how Unity helped us make some cool connected toy experiences. From debugging the hardware to creating new smart toy interactions, we wanted something flexible enough. Unity was a great fit and we’ll show you how.

auclair

Complex Mecanim Machines by Aaron Horne (RatDog Games) – 09/21/15 05:30 PM

Ever tried to build an actual animation state machine?  Ever wanted to create something more complex and deep than what you might create with an online tutorial?  This talk will guide you into the next level of state machine design and show you the powerful features of Unity’s Mecanim animation system state machine.  We’ll explore the process and implementation of an actual character’s animation state machine, how and why it was set up a particular way for Unity v4.x and how it was enhanced after the Unity v5.x updates.

Continuous Integration with Unity by Jonathan Peppers (Hitcents) – 09/21/15 06:00 PM

Continuous Integration is a concept that has not quite yet surfaced as a standard practice for game development. Learn the steps to set up continuous integration with Unity, including source control, using Unity Cloud Build, using Unity Test Tools for testing, distributing builds to services like HockeyApp or Dropbox, writing command-line build scripts with FAKE, and upgrading to your own CI server with TeamCity for more advanced scenarios.

Taking a few steps towards full continuous integration will benefit any game and save you time: from starting to use source control or just setting up automated builds.

Creating the Galaxy with Unity 5: Disruptor Beam on Star Trek Timelines by Jon Radoff (Disruptor Beam) – 09/23/15 11:30 AM

Disruptor Beam CEO, Jon Radoff, and Senior Technical Designer, Jason Booth, will discuss how they’ve created a massively multiplayer 3D space game that delivers the same level of polish players expect to see in PC and console gaming, but on phones and tablets – all leveraging Unity 5 features.  They will go into detail about how the Disruptor Beam team has used real time reflection probes and physically based rendering, as well as the content streaming and procedural rendering technology that Disruptor Beam built on top of the Unity 5 engine.

radoff

Creating UniMerge: What happens when you fill a feature hole and put it on the Asset Store by Matthew Schoen (Defective Studios) – 09/23/15 02:00 PM

Matt Schoen is a long-time Unity developer and creator of the semi-popular Editor Extension UniMerge: a tool for merging scenes and prefabs within the Unity Editor.  He maintains UniMerge as an ongoing side-project and has a long history of building third-party collaboration tools for Unity.  You’ll be hearing the story behind UniMerge, some of the challenges faced during its development and initial release on the Asset Store, and seeing some Real Numbers on sales and marketing.  The talk will contain a bit of how-to information, for those curious about UniMerge and how to collaborate well while using Unity.  You’ll also be getting the inside scoop on Asset Store publishing from the perspective of a software engineer with a strictly technical editor extension.  Finally, you’ll be seeing what the future might hold for UniMerge, and collaborative Unity development.

schoen

Everything Connects, or How Everyone is a Developer at Dots by Chris Deaner (Dots) – 09/22/15 03:00 PM

Dots and TwoDots were born from individual creators that have the ability to game design, graphic design, and code their visions to life. This model works fine when one person is able to bring all these unique skill sets to the table, but what happens when you try to build a a team around this model? Dot’s Head of Engineering, Chris Deaner will talk about how he believes that everyone that works at dots should consider themselves an engineer, an artist, and a musician and how Unity helps make that effort a reality.

Fallen Utopia – Bringing the World of PAMELA to Life with Unity 5 by Adam Simonar (NVYVE Studios) – 09/22/15 11:30 AM

Game and Level Designers looking for an example of how to design and create great looking game environments, specifically high-end sci-fi. 3D-Artists will also see examples of how to better translate their assets into finished scenes. Lastly, Programmers and Technical Artists may also be interested in broadening their knowledge base by exploring the visual tools in Unity.

simonar

Filming Giant Virtual Vehicles: Procedural Cinematography in Homeworld Shipbreakers by Adam Myhill (Blackbird Interactive) – 09/21/15 04:00 PM

Homeworld: Shipbreakers is a real-time strategy game in which hundreds of massive vehicles battle it out over the surface of a vast desert planet, harvesting resources from crashed spaceships as they struggle for survival in a harsh environment.  This talk discusses the cinematic tools and procedural camera systems used to create beautiful cutscenes of actors with variable performances.

Hand-keying cameras is great when the performers do exactly the same things each time, but what about when the actors are AI driven, or the level changes, or if their speed changes?   Blackbird Interactive has developed a procedural suite of camera tools which allow film-maker type controls and rule-sets to procedurally compose and translate cameras in order to get great shots of the events in-game.   These systems emulate the way a cameraman would compose shots and they adapt to variances with the characters or vehicles or even level design.

This talk will show juicy visuals and describe the mechanics behind them.  Cinematic camera emulation from composition to noise and camera transport methods will be deconstructed and shown in action. It should be of interest to anyone involved with gameplay cameras or cinematic presentation.

myhill

How Sago Sago transformed the build process: a Cloud Build Case Study by Luke Lutman (Sago Sago) – 09/22/15 05:30 PM

An in-depth look at how Sago Sago transformed the build process for their award winning children’s apps using Unity Cloud Build. Lead developer Luke Lutman will take attendees through the journey of creating a scaleable and sustainable build process in Unity step-by-step. Using his from-the-trenches experience getting eight different projects up and running in Cloud Build, he will discuss why it has been a big win for Sago and cover all the technical challenges they faced along the way.

lutman

Process, Pipeline, Performance: A Super Blunt Tech Art Direction Crash Course for Indies by Anton Hand (RUST LTD.) – 09/23/15 10:00 AM

So you want to make an Indie game. You’ve got you, Chet, Daria, Emilio, and Emilio’s cat (who insists she’s totally boss at retopo work meow). You’ve got this grand vision, and you’re beginning to map out your game, and then it hits you. How on earth are you going to get all this done?

In this talk, we’ll be covering how an informed pre-production comprising aesthetic direction, modelling style, asset management, lighting approach, and more are the difference between success and careening into a brick wall. We’ll talk to making the most of your human resources, unpack the difference between having specialists and generalists for line-asset production, when and how to use the Unity Asset Store best, and what design/production decisions are critical to lock-in up front. Lastly, we’ll briefly cover some multi-platform strategies, and the sorts of things to be aware of if eventually planning to scale down to mobile, or scale up to VR. Expect a rapid-fire pace, a fair bit of ranting, and the bluntness you might expect from a veteran 3d modeler who’s tired of seeing great projects go off the rails.

Race the Sun Optimization by Aaron San Filippo (Flippfly) – 09/22/15 06:00 PM

Flippfly will go into depth on their efforts to optimize Race The Sun for the Playstation Vita and other mobile platforms. As a high-speed, 3D “endless racer,” Race The Sun had some unique challenges. Flippfly will detail how they overcame these challenges, and will briefly review some of the fundamentals of optimization that apply to all Unity games.

filippo

Super Dungeon Bros and Unity Networking by Ryan Adams (React Games) – 09/22/15 05:30 PM

We will be discussing how we have have used Unity 5 to help us develop a fully networked game on 4 different platforms, including 2 new gen consoles in under 9 months. We will discuss the new features including Networking, Unity Events, and UGUI, what problems we ran into, and how you can effectively use these tools to create amazing games quickly.

adams

The Holodeck is Here – Designing for Room-Scale VR by Alex Schwartz (Owlchemy Labs) – 09/21/15 02:30 PM

The HTC Vive is the first but certainly not the last piece of VR hardware to bring standing, room-scale experiences to the living room or dedicated VR room. As designers, the thought of designing an experience that works in any configuration or size of living room / office is daunting, with the sheer amount of unknowns in the mix. Owlchemy Labs shares their experiences designing room-scale VR experiences, learned through the development of Job Simulator, an official launch title for SteamVR / HTC Vive. Watch as the team discusses tracked input, considerations for real-world ergonomics, skill transference in VR, designing for tethered experiences, locomotion, and more.

Unity for Animated Productions by Etienne Whittom (Hibernum Creations) – 09/22/15 06:00 PM

In early 2014, Montreal-based Hibernum Creations started work on a unified pipeline for game development and animation. Since then, the studio’s R&D team, Hibernum Labs, has been busy experimenting with in-game motion capture previsualization, interactive photorealistic rendering, and automated asset management, as well as developing Unity-based video montage and post-production tools. The result: some very promising new technologies and some very valuable lessons learned. Get the details from Etienne Whittom, head of Hibernum Labs, and Patrick Roussel, systems engineer at the Digital Imagery Research and Development Centre (CDRIN).

whittom

Unity Maximus: Art Optimizations for Maximum Performance in Unity 5 by Elliott Mitchell (Vermont Digital Arts) – 09/21/15 06:00 PM

Many platforms, like VR and mobile, place high demands on developers to meet acceptable framerates or else risk failure. Often, the art assets in a Unity project look fantastic but no matter how optimized the codebase is, the build just doesn’t meet the desired frame rate. Unoptimized art assets, including some art which may be purchased on the Asset Store, can seriously hinder performance on demanding platforms. In this session, we will highlight some red flags to lookout for in a variety of art asset types and identify key optimizations that can be implemented into your art pipeline to significantly increase performance on demanding platforms. Art asset types covered will include: 3D Models, Animations and Rigs, 2D Textures and Sprites, Materials and Shaders.

mitchell

Unity tools for seamless OTA updates for a f2p mobile MMO strategy game by Oleg Pridiuk (Game Insight) – 09/21/15 04:30PM

Frequent content updates is what keeps your players in the game. We developed Unity editor tools and a bit of own technology to deliver new quests and game levels bypassing the store submission process. In this session we’re sharing insights in tools we built for our mobile f2p MMO strategy X-mercs to make seamless OTA possible.

pridiuk

Virtual Reality for Large Multi-User Environments by Roland Haring (Ars Electronica BmgH / Futurelab) – 09/21/15 06:00 PM

In this talk a team from Ars Electronica Futurelab gives a postmortem overview on their latest VR project which was realized for the “Deep Space”, a huge L-Shaped virtual reality environment (wall and floor projection with approx. 16 by 9 meters each) for up to 200 visitors.

Learn what happens when latest VR hardware (8 Christie 4k projectors with 30 ANSI lumen each, render workstations running 4 Quadro M6000 each) meets Unity Engine with enhanced VR support in a classic stereoscopic distributed rendered VR environment.

Unity will be the new reference engine for this environment. The first big application developed is “The Human Body: A Cosmos Within” which is a travel into the human physiology and takes you on an interactive journey to discover the wonders of your human body.

haring

Writing Shaders: YOU can do it! by Yilmaz Kiymaz (Nordeus) – 09/22/15 03:00 PM

We all love to pick and choose from the list of shaders that come with Unity or from the ones available on the Asset Store. Sometimes though, you have something so specific in mind that you have to write one yourself. Be not afraid! Though it may seem daunting at first, writing shaders just isn’t that hard, especially if you’re used to coding in C# or UnityScript already. Custom shaders that you write yourself will help you achieve a unique look for your game and having an understanding of shaders can even let you squeeze out extra performance on mobile devices.

In this session, we’ll go over the basics of shaders, how they work, how they’re written, what Unity already takes care of for you, and when  you have to fend for yourself. We’ll start with some very basic shaders and then work our way up to warping entire worlds in the vertex shader and pushing some really stunning pixels in the fragment shader. We’ll also briefly touch on some of the more advanced shader techniques as a starter for those looking to push the envelope.

July 22

Xamarin Dev Days Recap and Expansion

When we announced Xamarin Dev Days, free weekend community events filled with intense and hands-on mobile C# learning, we knew that it would be popular – but we didn’t expect every location to sell out so quickly! Each Dev Days event has been packed full of awesome Xamarin content and fun hacking, and the feedback has been absolutely outstanding.

Head Logo

Dev Days Expansion!

Since we’ve seen such an incredible response to user groups requesting Dev Days in their city, we are excited to announce the next round of Xamarin Dev Days locations. We are not only rolling out more dates and locations in the United States, but we’re also hosting our first official Dev Days event in Europe, and have many more locations in the works!

Make sure to keep an eye on the official Xamarin Dev Days website for future announcements!

Totes2

Here is a sneak peak into what a Dev Days event looks like:

Amazing Presentations

Every Dev Days start off with several presentations introducing every developer to the entire world of the Xamarin Platform, including Xamarin.Forms, Xamarin Test Cloud, and Xamarin Insights. However, it doesn’t stop there as each Dev Days event has special guest speakers from the community present on the topic they’re most passionate about. We’ve see some fantastic presentations covering all aspects of mobile development, including Wearables, MVVM, Azure Mobile Services, and Amazon Web Services, as well as plenty of Xamarin.Forms deep dives.

Sessions Green

Hands-on Learning

After lunch we hold an “Ask the Experts” session where attendees are free to ask anything and everything to get their questions answered from industry experts, and then the Xamarin Team ensures that everyone has their machines fully configured for mobile development. Next, it is on to our interactive labs, code help, and File->New App!, where attendees go through line by line to build their very own Xamarin.Forms mobile application completely from scratch with Xamarin experts guiding them along the way.

Sessions Monkey

Community, Community, Community

Xamarin Dev Days are much more than just an amazing day of hands-on mobile development learning. It’s also the perfect opportunity to connect with other developers in your local community doing amazing things. We have worked closely with local user group leaders to organize Dev Days with us, and they are there to act as your local expert not only during the Dev Days event, but long after it is over.

Amazing Sponsors

Xamarin Dev Days wouldn’t be made possible without our amazing sponsors who not only provide breakfast, lunch, and venues, but also enable Dev Days attendees with the best tools and controls in the industry.

Food Sponsor + James Sponsor3

Don’t see your city on the list yet? Don’t worry as we have plans for even more Dev Days events in the future, so be sure to head to the official Xamarin Dev Days website and request your city!

The post Xamarin Dev Days Recap and Expansion appeared first on Xamarin Blog.

VR is a wild place. Time to plant your flag.

As Unity engineer Lucas Meijer said during the Unite Europe keynote, the kinds of VR experiences and interaction models that will set standards in the near future have yet to be invented. Which makes now a perfect time for fearless and visionary artists and developers to jump in and help define this emerging genre.

Brenden Gibbons is a Narrative Designer and student at NHTV, Breda. He jumped into VR filmmaking without a life vest when he made Dyskinetic, a VR live action short film for the Oculus Rift that screened at the international film festival GoShort 2014 in Nijnmegen. He came out of the experience with more problems than solutions, which is why he gave a talk about it at Unite Europe: in the hope that others in the audience would be inspired to solve some of the challenges he encountered.

The current paradigms don’t work

“There are so many things left to do that I can’t do, and it was such a fractured experience to make a VR film. I probably used about seven different types of software to pull my film together, including separate ‘housekeeping’ software to rename files in bulk, or to convert the footage into OGG files for Unity. The workflow I used to turn the footage into frames was especially clunky; we need better solutions.”
“VR is still a future piece of technology, at least regarding entertainment content. The ability to put something on your head and feel like you are somewhere else? That sounds like we’re in the future! But we’re using current paradigms to design for this future. We keep asking questions like ‘how do we port an FPS to VR?’ Or the problem of presence. Today we still find it difficult to design an app or make a film that just uses this concept of presence in VR. The real challenge is in figu
ring out how to make pure, VR only content.”

Brenden's workflow to get his film footage into Unity

Brenden’s workflow to get his film footage into Unity

“Presence is the difference between knowing and feeling”

Paul Hannah comes from a different background then Brenden, but just like him he’s trying out ways to develop VR content that feels real. He’s a Lead 3D simulation engineer at Airbus DS Newport in the UK. He spoke at Unite Europe about creating Heliskape, a VR helicopter simulator that allows the user to experience flying over London within the cockpit of an Airbus EC135 helicopter.

“We thought to ourselves, how can we create a sense of wonder? The input mechanism plays a key role in that, in creating presence. For Heliskape, we looked at designing the right physical controls that move with your hands just as they would in real life if you were flying a helicopter. For example, a physical control to move the throttle forward can get you much closer to presence in the virtual world.

He recounts how a student who tried out Heliskape experienced the sensation of vertigo even though she was sitting in a chair. “She felt as though she were flying high up in the sky; she was blown away by the experience, it was just brilliant.”

“I don’t think we are far off from being able to more widely develop true VR experiences. VR has moved faster than any other new input medium. The spatially aware controllers that Oculus and Valve are working on could be a big breakthrough.”

Innovating with Unity

As part of the Unite Europe keynote Lucas Meijer talked about the new features in Unity 5.1, including the out-of-the-box support for Oculus Rift and Gear VR. He said the way forward with VR is “to try many different ideas and see what sticks. Unity is the best development environment to experiment with VR, to fail fast and just try hundreds and hundreds of things on this search to find the experiences and interaction models that will work.”

At Airbus Paul and his team use Unity mainly to prototype. “It helps us to innovate quickly, to try out the ideas in our head, to see how it could work on multiple devices.” He says Unity 5 has greatly streamlined the artists’ workflow, especially with the Standard Shader and Real-time Global Illumination.

Brenden says that bringing his VR film together in Unity was “super simple. I used the footage as a texture feature in Unity 5 and just dragged the prefab in and it worked.”

footage as texture

Setting up Dyskinetic in Unity

Cross-industry exchange of knowledge is key to shaping a successful future for VR

Paul says in serious games “we have to embrace the real-world, whereas game developers often create their own fantastical world. Our approaches are different but we can and should learn from each other because VR is going to change games, films, how people buy real-estate and choose holidays; it’s going to change everything.”

“VR film is a real mixed-bag of disciplines,” says Brenden. “You can learn from interactive theatre about how to position your actors; learn from film about how to frame your shots; learn from game development for level design, for example, how to place your lights, how to use color, how to animate elements in the film all so you can force the viewer to look where you want them to look in your film. Be inspired by everything! It’s unexplored territory; we’re creating all-new styles of storytelling.”

For more info on VR development in Unity, watch these the talks from the popular VR track at Unite Europe:






July 21

Xamarin’s Newest MVPs!

Xamarin MVPAs the Xamarin developer community continues to expand, it consistently provides stand out members that we are excited to include in the Xamarin MVP program. These individuals have made significant contributions by sharing their passion and expertise in mobile app development with Xamarin’s growing global community. We honor these individuals with the Xamarin MVP title for these contributions, which include:

  • Writing great articles, books, and blog posts
  • Speaking in public and online
  • Sharing and building amazing libraries
  • Helping developers online in our forums, on Twitter, Stack Overflow, and other communities
  • Shipping awesome apps

Today, we’re thrilled to recognize our latest round of Xamarin MVPs in 2015 for their remarkable contributions to the community!

chaseflorell Chase Florell Roy Cornelissen roy
mikeB Mike Bluestein Dave Evans dave
les Les Brown Adam Kemp adam
tom Tom Walker Fabian G. Williams fabian
dan Dan Hermes

A big thank you for all of your time, effort, and hard work you have dedicated to the growth of mobile development! If you know an outstanding developer who would make a great Xamarin MVP, please nominate him or her here.

The post Xamarin’s Newest MVPs! appeared first on Xamarin Blog.

Roslyn and Mono

Hello Internet! I wanted to share some updates of Roslyn and Mono.

We have been working towards using Roslyn in two scenarios. As the compiler you get when you use Mono, and as the engine that powers code completion and refactoring in the IDE.

This post is a status update on the work that we have been doing here.

Roslyn on MonoDevelop/XamarinStudio

For the past year, we have been working on replacing the IDE's engine that gives us code completion, refactoring capabilities and formatting capabilities with one powered by Roslyn.

The current engine is powered by a combination of NRefactory and the Mono C# compiler. It is not as powerful, comprehensive or reliable as Roslyn.

Feature-wise, we completed the effort, and we now have a Roslyn-powered branch that uses Roslyn for code completion, refactoring, suggestions and code formatting.

In addition, we ported most of the refactoring capabilities from NRefactory to work on top of Roslyn. These were quite significant. Visual Studio users can try them out by installing the Refactoring Essentials for Visual Studio extension.

While our Roslyn branch is working great and is a pleasure to use, it also consumes more memory and by extension, runs a little slower. This is not Roslyn's fault, but the side effects of leaks and limitations in our code.

Our original plan was to release this for our September release (what we internally call "Cycle 6"), but we decided to pull the feature out from the release to give us time to fix the leaks that affected the Roslyn engine and tune the performance of Roslyn running on Mono.

Our revisited plan is to ship an update to our tooling in Cycle 6 (the regular feature update) but without Roslyn. In parallel, we will ship a Roslyn-enabled preview of MonoDevelop/XamarinStudio. This will give us time to collect your feedback on performance and memory usage regressions, and time to fix the issues before we make Roslyn the default.

Roslyn as a Compiler in Mono

One of the major roadblocks for the adoption of Roslyn in Mono was the requirement to generate debugging information that Mono could consume on Unix (the other one is that our C# batch compiler is still faster than Roslyn).

The initial Roslyn release only had support for generating debug information through a proprietary/native library on Windows, which meant that while Roslyn could be used to compile code on Unix, the result would not contain any debug information - this prevented Roslyn from being useful for most compilation uses.

Recently, Roslyn got support for Portable Program Database (PPDB) files. This is a fully documented, open, compact and efficient format for storing debug information.

Mono's master release contains now support for using PPDB files as its debug information. This means that Roslyn can produce debug information that Mono can consume.

That said, we still need more work in the Mono ecosystem to fully support PPDB files. The Cecil library is used extensively to manipulate IL images as well as their associated debug information. Our Reflection.Emit implementation will need to get a backend to generate PPDBs (for third party compilers, dynamic code generators) and support in IKVM to produce PPDB files (this is used by Mono's C# compiler and other third party compilers).

Additionally, many features in Roslyn surfaced bloat and bugs in Mono's class libraries. We have been fixing those bugs (and in many cases, the bugs have gone away by replacing Mono's implementation with implementations from Microsoft's Reference Source).

GameAnalytics Unity SDK, bolstered with new features!

GameAnalytics is a an Asset Store Service Partner.

A staple on the Unity Asset Store in terms of free analytics for the past 3 years, the GameAnalytics SDK for Unity has been upgraded for both iOS and Android, as the platform is now augmented with several new features.

Richer and more reliable player behaviour data

Key new features in the updated GameAnalytics SDKs include dedicated player progression, designed to facilitate level balancing by offering insight into the way players consume and move through game content. The progression event type has a 3 hierarchy structure, to give the much needed granularity in tracking players’ paths. For example, your game’s progression hierarchical system could look something like: World, Level, Phase. Based on how you define these events, they’ll also automatically populate the progression filters, so you can add a lot of granularity to your analysis.

Just as important, the SDKs now have enriched in-game economy analysis, both for real money transactions (now with purchase validation) and for in-game resources (such as hard and soft currencies, XP, etc). Real money transactions will be defined as business events, to which you can include the specific type of in-app item purchased, and where in the game the purchase was made. This will help with tweaking your monetisation and figuring out if there’s place for that higher price bucket, after all. The hard and soft currency balance, or any other resources you may have in your game can be tracked with resource events. Based on the resulting analyses you will be able to conclude whether or not you’re giving away too much gold in your game, or if players are running dry too often.

Other new features in the SDKs include custom dimensions, which let you tag players with any piece of information aiding your analysis, and a brand new dashboard: Benchmarks, which helps you compare your game’s performance to that of the whole GameAnalytics network, giving the context you need to make informed decisions that can improve your game.

“It’s our belief that the use of analytics can help make even the best games better, but analytics tools are only as good as the quality of data they serve up, which is why we’re constantly working on expanding the range and type of information GameAnalytics is able to pool from games and players.” said Morten Wulff, GameAnalytics Co-founder.

Here’s a list of the features GameAnalytics now offers:

  • Player Progression;
  • Business events (real money transactions by item type and item id) with purchase validation;
  • In-game resources;
  • Error events;
  • Custom dimensions;
  • Design events (for tracking any custom event you can think of);
  • Cohorts and Funnels tools;
  • Explore tool – that lets you visualise any of the events and metrics against each other to be able to spot any relevant trends or correlations;
  • Raw data export;
  • Benchmarks (against the whole GameAnalytics 5400+ games network, but also against games in particular genres);
  • and more.

July 20

Same Day Xamarin Support for Visual Studio 2015

Today, Microsoft is unveiling the final release of Visual Studio 2015 in a global webcast, and we are joining the celebration! Visual Studio Logo Now Released to Market (RTM) for full use in production, Visual Studio 2015 includes many new features and improvements that make it easier to build apps quickly, including diagnostics, new C# 6 language features, and tighter integrations with TFS for streamlined DevOps.

We’re excited to announce same-day Xamarin support for Visual Studio 2015, including Visual Studio 2015 Community Edition, MSFT’s free IDE for non-enterprise apps. Xamarin and Visual Studio help you go mobile quickly, whether you’re building small projects, amazing consumer games, or employee-facing productivity apps. This combination of Xamarin and Visual Studio 2015 is our most integrated release ever – featuring a Visual Studio 2015 installation process that allows you to choose to install Xamarin with a single click, giving you everything you need to start building native cross-platform apps, all in C#.

Watch Storyboard in Visual Studio 2015

Be sure to check out the Visual Studio 2015 launch webcast today at 8:30am PDT, where MSFT product management teams will demonstrate Visual Studio 2015 product enhancements, including the latest from Xamarin.

It’s never been easier to start building iOS and Android apps — all from VS, all in C#. To learn more about developing native iOS and Android apps with Visual Studio and Xamarin, visit xamarin.com/visual-studio.

The post Same Day Xamarin Support for Visual Studio 2015 appeared first on Xamarin Blog.

IL2CPP Internals: Testing frameworks

This is the eighth and final post in the IL2CPP Internals series. In this post I’ll deviate a bit from the content of previous posts, and not discuss some aspect of how IL2CPP works at compile time or run time. Instead, we’ll take a look at a brief overview of how we develop and test IL2CPP.

Test-first development

The IL2CPP team has a strong test-first development mentality. Much of the code for IL2CPP is written using the practice of Test Driven Development (TDD), and very few pull requests are merged to the IL2CPP code without significant test coverage.

Since IL2CPP has a finite (although rather large) set of inputs – the ECMA 335 spec- the process of developing it fits nicely with TDD concepts. Most of tests are written before production code, and these tests always need to fail in an expected way before the code to make them pass is written.

This process helps to drive the design of IL2CPP, but it also provides the development team with a large bank of tests which run rather quickly and exercise nearly all of the existing behavior in IL2CPP. As a development team, this test suite provides two important benefits.

  1. Confidence: Most changes to refactor code in IL2CPP can be made with high confidence. If the tests pass, it is very unlikely that a regression has been introduced.
  2. Troubleshooting: Since the code in IL2CPP behaves as we expect it to, bugs are almost always unimplemented sections of the code or cases we have not yet considered. By scoping down the space of possible causes of a given bug this way, we can correct bugs much more quickly.

Testing statistics

The various types of tests that we run against the IL2CPP code base break down into a few different levels. Here are the number of tests we current have a each level (I’ll discuss what each type of test actually is below).

  • Unit tests
    • C#: 472
    • C++: 44
  • Integration tests
    • C#: 1735
    • IL: 173

If all of these tests are green, then we feel confident that we can ship IL2CPP at that moment. We maintain one main development branch for IL2CPP, which always tracks the leading edge branch for development in Unity as a whole. The tests are always green on this main development branch. When they break (which does happen once in a while), someone usually fixes them within a few minutes.

Since developers on our team are forking this main branch for personal development often, it needs to be green at all times. The build and test status for both the main development branch and personal branches are maintained on Katana, Unity’s internal build management system.

We use NUnit to run all of these tests and the drive NUnit in one of three different ways

  • Windows: ReSharper
  • OSX: Xamarin Studio
  • Command line on Windows and OSX on our build machines: a custom Perl script

Types of tests

I mentioned four different types of tests above without much explanation. Each of these types of tests serves a different purpose, and they all work together to help keep IL2CPP development moving forward.

The unit tests verify the behavior of a small bit of code, typically a method. They set up a situation, execute the code under test, and finally assert some expected behavior.

The integration tests for IL2CPP actually run the il2cpp.exe utility on an assembly, compile the generated C++ code to an executable, then run the executable. Since we have a nice reference for IL2CPP behavior (the existing version of Mono used in Unity), these integration tests also run the same assembly with Mono (and .Net, on Windows). Our test runner then compares the results of the two (or three) runs dumped to standard output and reports any differences. So the IL2CPP integration tests don’t have explicit expected values or assertions listed in the test code like the unit tests do.

C# unit tests

These tests are the fastest, and lowest level tests that we write. They are used to verify the behavior of many parts of il2cpp.exe, the AOT compiler utility for IL2CPP. Since il2cpp.exe is written entirely in C#, we can use fast C# unit tests to get good turn-around time for changes. All of the C# unit tests complete in a few seconds on a nice development machine.

C++ unit tests

The vast majority of the runtime code for IL2CPP (called libil2cpp) is written in C++. For parts of that code which are not easily accessible from a public API, we use C++ unit tests. We have relatively few of these tests, as most of the behavior of code in libil2cpp can be exercised via our larger integration test suite. These tests to require more time than you might expect for unit tests to run, as they need to run il2cpp.exe itself to set up their fixture data.

C# integration tests

The largest and most comprehensive test suite for IL2CPP is the C# integration test suite. These tests a divided into smaller segments, focusing on tests that verify behavior of icalls, code generation, p/invoke, and general behavior. Most of the tests in this suite are rather short, only about 5 – 10 lines long. The entire suite runs in less than one minute on most machines, but we can run it with various IL2CPP options related to things like stripping and code generation.

IL integration tests

These tests are similar in toolchain to the C# integration tests. However, instead of writing the test code in C#, we use the ILGenerator class to directly create an assembly. Although these tests can take a bit more time to write than C# tests, they offer increased flexibility. Often we run into problems with IL code that is invalid or not generated by our current Mono C# compiler. In these cases, we can often write a good test case with IL code. The tests are also beneficial for comprehensive testing of opcodes like conv.i (and similar opcodes in its family) which have clear behavior with many slight variations. All of the IL tests complete end to end in less than one minute.

We run all of these tests through many variations and options on Katana. From a clean pull of the source code to completed test runs, we see about 20-30 minutes of runtime depending on the load on the build farm.

Why so many integration tests?

Based on these descriptions, it might seem like our test pyramid for IL2CPP is upside down. And indeed, the end-to-end integration tests (near the top of the pyramid) make up most of our test coverage.

Following TDD practice with test times more than a few seconds can be difficult as well. We work to mitigate this by allowing individual segments of the integration test suites to run, and by doing incremental building of the C++ code generated in the test suites (this is how we are proving out some incremental building possibilities for Unity projects with IL2CPP, so stay tuned). Then the turn-around time for an individual test is reasonable (although still not as fast as we would like).

This heavy use of integration tests was a conscious decision though. Much of the code in IL2CPP looks different than it used to, even at our initial public releases in January of 2015. We have learned plenty and changed many of the implementation details in the IL2CPP code base since its inception, but we still have many of the original tests written years ago. After trying out tests at a number of different levels (including even validating the content of the generated C++ source code), we decided that these integration tests give us the best runtime to test stability ratio. Seldom, if ever, do we need to modify one of the existing integration tests when something changes in the IL2CPP code. This fact gives us tremendous confidence that a code change which causes a test to fail is really a problem. It also let’s us refactor and improve the IL2CPP code as much as we need to without fear.

Even larger tests

Outside of IL2CPP itself, the IL2CPP code fits into the much larger Unity testing ecosystem. For each platform we ship supporting IL2CPP, we execute the Unity player runtime tests. These tests build up a single Unity project with more than 1000 scenes, then execute each scene and validate expected behavior via assertions. We usually don’t add new tests to this suite for IL2CPP changes (those tests usually end up being at a lower level). This suite serves as a check against regressions that we might introduce with IL2CPP on a given platform. This suite also allows us to test the code used in integration IL2CPP into the Unity build toolchain, which again varies for each platform. A typical runtime test suite completes on about 60-90 minutes, although we often execute individual tests locally much faster.

The largest and slowest tests we use for IL2CPP are Unity editor integration tests. Each of these tests actually runs a different instance of the Unity editor. Most of the IL2CPP editor integration tests focus on building a running a project, usually with various editor build settings. We use these tests to verify things like complex editor integration, error message reporting, and project build size (among many others). Depending on the platform, integration test suites run in a few hours, and usually are executed at least nightly, if not more often.

What is the impact of these tests?

At Unity, one of our guiding principles is “solve hard problems”. I like to think about the difficulty of problems in terms of failure. The more difficult a problem is to solve, the more failures I need accomplish before I can find the solution.

Creating a new highly-performant, highly-portable AOT compiler and virtual machine to use as a scripting backend in Unity is a difficult problem. Needless to say, we’ve accomplished thousands of failures along the way. There are more problems to solve, and so more failures to come. But by capturing the useful information from almost all of those failures in a comprehensive and fast test suite, we can iterate very quickly.

For the IL2CPP developers, our test suite is not so much a means to verify bug-free code (although it does catch bugs), or to help port IL2CPP to multiple platforms (it does that too), but rather, it is a tool we can use to fail fast and solve hard problems so our users can focus on creating beautiful things.

Conclusion

We hope that you have enjoyed the IL2CPP Internals series of posts. We’re happy to share implementation details and provide debugging and performance hints when we can. Let us know if you want to hear more about other topics related to the design and implementation of IL2CPP.

July 17

Can’t Miss Community Content

Xamarin developers not only build amazing iOS and Android apps in C#, but love contributing to the Xamarin community through blog posts, components, plugins, and podcasts. The links below will take you to some of favorites over the past few weeks:

Podcasts

    Xamarin Podcast Special Edition: Google IO

    Explore mobile backend options with the Xamarin Podcast.

  • Xamarin Podcast — Exploring Backend Options: Mike James and Pierce Boggan discuss mobile backend options for Xamarin developers, including Oracle MCS, Microsoft Azure, and Facebook’s Parse.
  • Gone Mobile — Automated App Testing with eBay’s Niels Frydenholm: eBay’s Niels Frydenholm joins Greg Shackles and Jon Dick to discuss automatic app testing.

Great Blog Posts

Xamarin.Forms

Add bindable maps with the Maps behavior from Jonathan Yates.

Adam Wolf’s card UI using Xamarin.Forms.

Thanks to these developers for sharing their Xamarin knowledge with the rest of the developer community. If you have an article or blog post related to Xamarin development that you would like to share, please let us know by tweeting @XamarinHQ and it may be featured in an upcoming community content roundup.

The post Can’t Miss Community Content appeared first on Xamarin Blog.

The freedom to create your own kind of beautiful

It thrilled us to see so much high-quality, cross-platform content on display at Unite Europe. Iestyn Lloyd and Adam Simonar were two speakers at our dev conference who talked about creating gorgeous graphics with an efficiency that was near-impossible before Unity 5.

“The distance to beautiful visuals is much shorter now”

Adam Simonar was onstage at Unite Europe to talk about Real-time Global Illumination (GI) (powered by Geomerics Enlighten), together with Jim Chaney, Engineering Manager at Geomerics, and Kasper Storm Engelstoft, a programmer at Unity.

He is a Studio Director and a Lead Level Designer at NVYVE Studios, a Canadian studio with a background in architectural visualization. Recently, his small team has branched out and are busy developing PAMELA, a sci-fi horror survival game coming soon for PC.

“Real-time GI enables us to create a world that would have been close to impossible in Unity 4,” he says. “We knew the kind of look and feel that we wanted to achieve, but the highly dynamic nature of the environment was a huge lighting challenge before Unity 5”.

The light tells the story

In PAMELA the action takes place in a vast, futuristic city, with sprawling areas for the player to explore. Adam says that showing the transition from day to night in the game is crucial to setting the mood. But day and night cycles are difficult to show in interiors because all the light is bounced. He points out the key detail of the glowing neon tubes in the scenes that change from a calm blue at day to an unsettling red-orange at night.

“We’ve been able to create dramatic light effects, all of it done in real-time with emissive material in Unity 5,” says Adam. “Working with emissive materials is great from a performance standpoint, as well as often being a faster way to create content. Lighting is now much more a part of the design process, as we’re able to iterate with different light setups very easily.”

“You can make your graphics look like anything you want in Unity 5”

Iestyn Lloyd, a BAFTA-winning developer gave two talks at Unite Europe. In his first session he explained how he took his Dropship diorama (featured in the Unity 5 trailer) from good to gorgeous with Unity 5. He used the Standard Shader, Real-time GI, Reflection Probes (“the most wonderful things because they make everything shiny”) and loads of Post-Processing Special Effects, together with a number of Asset Store items (see below).

A high-end toolset that anyone can jump into

“Unity 5 is now up there with the engines traditionally known for great graphics,” he says. He calls himself both a programmer and a self-taught technical artist, and says that “for too long there’s been a division between programmers and artists. I think the tools in Unity 5 and the available plugins will actually help to drive greater ‘graphics literacy’ because they’re so affordable yet so well made. They allow you to step out of your comfort zone, to actually develop your own style and iterate away on it.”

He told his audience that “it’s so important to cut loose during your spare time, when you’re not working to any constraints, and see what Unity 5 can do. It’s a chance to build up a portfolio, which is useful because it’s only going to be a few years until these effects can be used on multiple devices, even high-end mobile.”

A few of their favorite shiny things from the Asset Store

Not surprisingly both developers are Asset Store fans. Their top picks include: Allegorithmic Substances, Alloy Physical Shader Framework, Amplify Color, Andromeda Station, SE Natural Bloom and Dirty Lens and SpeedTree. Iestyn also points out that Substance Designer, Substance Painter and Quixel are good for learning how to work with physically-based shading.

Watch their Unite 2015 sessions:

We provide tons of helpful learning resources for developers new to Unity and/or Unity 5, just go to Learn to find everything you need. Here are few to get started with:

Unity 5 lighting and rendering
Unity 5 lighting
The Standard Shader
Lighting for beginners

Live training sessions

Image Effects Overview
Using Lights

July 16

Save the Date for Xamarin Evolve 2016

Mark your calendars for Xamarin Evolve 2016, taking place April 24-28 in Orlando, Florida! Join the Xamarin team and fellow developers for the largest cross-platform mobile development event in the world.

Xamarin Evolve 2016

Last year, Xamarin Evolve hosted a sell-out crowd of over 1,200 attendees. Speakers from leading companies including Microsoft, Dropbox, Github, Google, Accenture, and IBM led over 90 conference and training sessions covering everything from the Xamarin platform and the latest in iOS and Android development, to the future of C#, mobile security, and cross-platform best practices. Xamarin Evolve attendees were also the first to know about groundbreaking new Xamarin products and capabilities for mobile development.

These are the top five things that Xamarin Evolve attendees told us that they left the conference with:

  • Deeper mobile technical knowledge and skills
  • The ability to go faster with their mobile projects
  • Greater confidence in the success of their mobile strategy
  • Amazing new connections
  • An unforgettable experience

Photos from Xamarin Evolve 2014

Xamarin Evolve 2016 is going to be even more unforgettable! With so much happening in mobile development, and an even bigger venue, you’re going to want to take part in everything Xamarin Evolve has to offer.

Sign up below to be notified when tickets go on sale!

Sign up

 

The post Save the Date for Xamarin Evolve 2016 appeared first on Xamarin Blog.

Android Themes in Unity

For an introduction into Android themes and styles, feel free to refer to Google documentation: http://developer.android.com/guide/topics/ui/themes.html

If you are designing a game, where the world and the UI are rendered full-screen by Unity, why care about the themes?

First of all, you may want to display a WebView, or another sort of dialog with standard Android interface, and it will by default inherit the applications theme.

Second, when clicking an InputField or calling TouchScreenKeyboard.Open(), you have the keyboard displayed along with the input box. Themes are applied to this input box.

At the moment of writing this post, Google has three main theme families:

  • Material (available for Android 5.0 Lollipop and later)
  • Holo (available for Android 4.0 Ice Cream Sandwich and later)
  • Anything pre-Holo.

Let’s check it out:

Holo

image00

Material

image01

NoTitleBar

image02

Third point of applying the themes – if you want to get your game or app featured by Google, you have to apply the latest theme available at the moment (now this is Material).

However, there is another way to deal with the themes – appcompat library, which is a part of the Android Support Library package. Google publishes this library for the developers to be able to apply recent themes to older devices, for example, Material to pre-Lollipop devices. This is a good way to go with regular Android apps, however we at Unity do not include appcompat into our standard package for a number of reasons (apk size being the most important). You can add appcompat to a Unity game yourself if you’d like to – either as a plugin or in Android Studio after exporting the project.

Now back to Unity. If you take a look at our default manifest, you will see the following:

<application android:theme="@android:style/Theme.NoTitleBar.Fullscreen" …></application>

By default, we are applying the theme that is available on all supported devices (Android 2.3 Gingerbread and later). Good news is that we now allow you to override this setting in your own manifest (more details on overriding the manifest are here, long story short – place your manifest into Assets/Plugins/Android/AndroidManifest.xml, but beware as it overrides our manifest completely). Setting your own theme works starting from version:

  • Unity 4.6 family – from Unity 4.6.4 Patch 4;
  • Unity 5.0 family – from Unity 5.0.1 Patch 4;
  • Unity 5.1 – from the initial release.

However please don’t rush overriding the manifest to change the theme! We have one more thing for you ☺ At runtime, on initialization, Unity Android player checks whether you changed the default Unity theme (Theme.NoTitleBar.Fullscreen):

  • If you did change it, we respect your choice.
  • If you did not, we check the device API level, and apply Material for Lollipop and later, or Holo for Ice Cream Sandwich and later, on the fly.

So the bottom line is – if you don’t override the default Unity theme in Android manifest, we will apply the latest available theme for the device running the game, at runtime. Please be careful when overriding the manifest completely. If you don’t specify any theme at all for your application, Android will choose Theme.DeviceDefault, which may result in different and possibly disappointing results on different devices. You may want to keep the Unity’s default

<application android:theme="@android:style/Theme.NoTitleBar.Fullscreen" …>
</application>

in your custom manifest, and we will take care of dynamically applying the best theme for you.

July 15

Asset Store: A force for creative goodness.

Since its inception in 2010, the Unity Asset Store has endeavored to empower game developers with the tools and resources they need, so they can focus on the creative process of making great games as effectively and efficiently as possible.  It’s part of our mission to democratize game development.  With over 1.5 million Asset Store users, we can attest that the community finds it an indispensable resource!  We frequently hear from grateful customers, pleased that they have finished their product on time, on budget, made possible by resources obtained on the Unity Asset Store.

At its core, the store is an extension of behavior that we observed evolving organically in the community.  On our forums and wiki, Unity developers were sharing and exchanging code, art and other assets informally.  We saw an opportunity to create a marketplace which would serve the interests of our developers as well as  provide an income to the talented people who create and sell content.   While perhaps the metaphor of an ecosystem is overused, it’s really an accurate representation of the Asset Store– we’ve made a kind of coral reef where game developers and content creators serve the needs of one another.  It’s very much alive!  We have content creators now who are blessed with enough success on the Asset Store to make content creation their primary livelihood, not bound by geography or chained down to a studio.  Asset Store has empowered artists and programmers to become self-made entrepreneurs.  And in a few cases, millionaires.

In the late 90’s and early 2000’s, game development was a pretty expensive and complicated endeavor, and producers were reluctant to take a risk investing in projects which deviated from the mainstream.  Although there were some exceptions,  it was not a good time for the indie or creative developer.  This is exactly the problem we set out to solve at Unity with both our engine and our Asset Store.  Unity takes care of the complex heavy lifting involved in making a game, so you can focus on what’s important: making meaningful games and interactive experiences.  It’s one of the things that keeps us passionate about what we do here at Unity Technologies. By providing the largest commercial repository of game code, content, art and learning materials, the Unity Asset Store can provide a developer with the resources needed to make great games, to work faster and to reach higher with the help of content creators who love what they do.  There’s 3D models by some of the best artists out there, top-notch code libraries, Hollywood sound effects and music, and starter kits which you can take apart and use as the basis for building new projects.

Alas, there’s always going to be folks who exploit a good thing for personal gain without giving something back.  I’m referring to the handful of Asset Store users out there who have taken Unity demo products and Asset Store starter products, slapped their name on it without contributing or creating anything original, and uploading it for sale on popular online game marketplaces. This flies in the face of our heartfelt mission to serve the creative individual and catalyze a whole new generation of great games!  Some people have referred to the process as “Asset Flipping”.  Whatever you call it, the amount of attention this practice has received is hugely disproportionate to the many positive ways the majority of our customers use the Asset Store.

The point of this little missive is to underscore that the Asset Store is here to serve the greater good.  If you spot someone from the Dark Side misusing Asset Store content, or if you spot an example project “flipped” and uploaded as a game on an online marketplace, call them out & let the vendor know.   In many ways, the Asset Store is like a particle accelerator for ideas.  It represents the genius and inspiration of some of the most talented programmers and artists from around the world.   In that sense, Asset Store gives game developers something great.   Use it wisely to become great yourself!

Share Even More Code with Plugins for Xamarin

One of my top priorities for Moments, a Snapchat clone built with Xamarin.Forms and Microsoft Azure, was to maximize the amount of code shared between my target platforms. I was already achieving a significant amount of shared code with Xamarin.Forms, but I noticed that many things, such as checking for device connectivity or showing a dialog, had to be done on a per-platform basis. Plugins for Xamarin helped fill in those gaps and allowed me to share even more code.

Plugins for Xamarin NuGet Icon

A Plugin for Xamarin is a special kind of NuGet that adds cross-platform functionality or abstracts platform-specific functionality to a common API. These are extremely lightweight and completely cross-platform, so they can be accessed via a Portable Class Library (PCL) or Shared Project. Below, I’ve shared a few of my favorite Plugins for Xamarin that I used to build Moments.

Connectivity

In today’s world, it’s vital that apps maintain connectivity when interacting with web services and other network-dependent logic. With the Connectivity Plugin for Xamarin and Windows, it’s never been easier to check the connection status of a mobile device, gather connection types and bandwidths, and more.

Testing network connectivity from shared code is literally as easy as writing one line of code:

var connected = CrossConnectivity.Current.IsConnected;

The Connectivity Plugin for Xamarin and Windows can also test the reachability of specific hosts using the IsReachable and IsRemoteReachable methods. Finally, you can subscribe to the ConnectivityChanged event to ensure that your app always knows if the device is connected to the internet:

CrossConnectivity.Current.ConnectivityChanged += (sender, args) =>
{
    // Connectivity changed! Check args.IsConnected!
};

Settings

Another common use case among mobile apps is the ability to store user settings. Each platform exposes its own way of storing settings, such as NSUserDefaults on iOS and SharedPreferences on Android. The Settings Plugin for Xamarin and Windows takes the ability to create and access settings cross-platform!

Rather than dealing with the various platform-specific implementations, the Settings Plugin for Xamarin and Windows makes it easy to implement user settings, as seen below:

public class Settings
{
    public bool NotificationsEnabled
    {
        get { CrossSettings.Current.GetValueOrDefault<bool> ("notificationsEnabled"); }
        set { CrossSettings.Current.AddOrUpdateValue<bool> ("notificationsEnabled", value); }
    }
}

Not only is the Settings Plugin for Xamarin and Windows great for managing settings from shared code, but it can also act as a simple cross-platform key-value store with support for many different data types, such as strings, integers, doubles, booleans, DateTimes, and more!

Dialogs

From alert popups to loading spinners, dialogs are a staple of mobile app development. The User Dialogs Plugin for Xamarin and Windows allows you to show almost any type of dialog you can think of from shared code, including loading spinners, alerts, confirmations, and error dialogs.

Loading Indicators
For performing potentially lengthy tasks, such as logging in a user, use the ShowLoading method:

UserDialogs.Instance.ShowLoading ("Loading");

When the task ends, you can hide the dialog using the following method call:

UserDialogs.Instance.HideLoading ();

Success & Failure
If a dialog needs to reflect success or failure, such as the the result of a user log in, you can use the success and failure APIs available within the User Dialogs Plugin for Xamarin and Windows:

// Success
UserDialogs.Instance.ShowSuccess ("Success");
// Failure
UserDialogs.Instance.ShowError ("Error");

Download a Plugin for Xamarin Today

All of the Plugins for Xamarin listed above helped me significantly increase productivity by achieving over 87% shared code in Moments. Check out Plugins for Xamarin on GitHub to find a plugin for your next project, or find out how easy it is to build your own Plugin for Xamarin.

The post Share Even More Code with Plugins for Xamarin appeared first on Xamarin Blog.

Monologue

Monologue is a window into the world, work, and lives of the community members and developers that make up the Mono Project, which is a free cross-platform development environment used primarily on Linux.

If you would rather follow Monologue using a newsreader, we provide the following feed:

RSS 2.0 Feed

Monologue is powered by Mono and the Monologue software.

Bloggers