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.

April 17

iOS 64-bit and Metal update

Welcome to round two of our weekly blog update covering progress with stabilization and optimization of iOS 64-bit support in Unity 4.6 and 5.0! One of the most visible changes this week is that 5.0.1p1 includes the build size reductions that previously shipped in 4.6.4p2. You’ll also find further fixes to generics and WebRequest, amongst many others. We still highly recommend that all production teams working toward releasing iOS 64-bit titles adopt every patch release as it ships.

Remember:  All patch releases for 4.6 and 5.0 can be found at https://unity3d.com/unity/qa/patch-releases.

And all monthly maintenance releases for 4.6 and 5.0 can be found at http://unity3d.com/get-unity/download/archive

And now for this week’s updates:

Status of 64-bit/Metal support in Unity 5.0.x

  • 5.0.1p1 shipped Wednesday, April 15.  The weekly 5.0.x patch release schedule resumed this week and and will continue going forward.  The build includes new fixes in addition to those introduced in 4.6.4p1 and 4.6.4p2.
  • Download and view the latest release notes for Unity 5.0.1p1 at https://unity3d.com/unity/qa/patch-releases/5.0.1p1

Status of 64-bit/Metal support in Unity 4.6

  • Unity 4.6.4p3 shipped today, April 17th.  In addition to a long list of il2cpp fixes, it contains new WebRequest fixes and first set of build size improvements.
  • Download and view the latest release notes for Unity 4.6.4p3 at https://unity3d.com/unity/qa/patch-releases/4.6.4p3

Our current release plan

  • 5.0 patch releases are scheduled to be released each week on Wednesdays.
  • 4.6 patch releases are scheduled to be released each week on Fridays.

Some important info to remember

  • It is necessary to update your projects to 4.6 at the very least to enjoy 64-bit support on iOS. 64-bit will only ship in 4.6.x and 5.x releases.
  • Apple has announced that they will require all apps on the store to include 64-bit support with any updates as of June 1, 2015.
  • We are doing weekly releases with all bugfixes. We can’t fix bugs if they’re not reported, so please report any issues with il2cpp builds the moment you discover them.
  • Internally, our developers collaborate on a single version of IL2CPP which is ported to 4.6 and 5.0 -based patch release branches at the last possible moment in order to release as many fixes and improvements as possible in each release. The cutoff date for fixes in each weekly patch release is several days before the release, to give us time to test and approve each release.

About the binary size increase issue

We’re still working hard behind the scenes to address increased runtime executable file sizes when using il2cpp.  Further improvements were addressed in 5.0.1p1 and 4.6.4p3 with more improvements underway.

For reference and more context about what is going on with iOS 64-bit and Apple’s requirements, please check out the blog post on iOS & ARM64 here, and our in-depth strategic plan for IL2CPP here.

Our plan is to update these posts on a weekly basis so make sure to check back next week to get a heads up on the latest progress with 64-bit iOS support and il2cpp!

A report from The Inaugural Annual Unity Test Engineering World Congress

The past few months were really busy for the Software Test Engineers team. We were all working hard on upcoming releases and the day-to-day testing tasks took up all of our bandwidth. We were so busy working in the sawmill that we forgot to sharpen our saws. To break out of this vicious circle, we organized a week long event, aimed at learning new skills and exchanging experiences. Finally, just last month we had the STE Week, or – what we like to call – The Inaugural Annual Unity Test Engineering World Congress!

So what did we do with these 5 days? Well first of all, we got everyone together! We are over 20 individuals distributed among Unity offices in Copenhagen, Odessa, Vilnius, Berlin, Boston, Austin, Singapore, Seattle, Montreal, plus a few who work remotely from home. So the most exciting part of the week was to finally gather our growing team and meet everyone in person. The location for this year’s gathering was Vilnius, Lithuania.


Testing craft

Monday was kicked off by one of the STE leads, Claus Petersen, giving a presentation about the upcoming changes in R&D and their implications for the STE team. The shift in the way we organize our development activities is like a hike in the mountain; it’s exciting, you get a beautiful view of the mountain peak in the distance, but at the same time it’s challenging and can be really hard (there could be trolls around – who knows). The activities we did during the STE week can be compared to equipping the team for the rough terrain they will be traversing during the next year.

The next topic on the agenda was “schools of testing”. We looked at how different groups of testers in the industry perceive the testing craft and how it influences the way they interact with other parts of their organizations. What can we learn from their approach to testing? The presentation, followed by exercises, was meant to ignite a discussion in the group. Even though our STEs are on the same page about elementary testing principles (testing is a context dependent activity), there is always room for a professional exchange of opinions. That is precisely what followed.

Scrum workshop

At the moment R&D is undergoing some structural changes to adapt to the growth of the company. While we are not doing Scrum at Unity, we are moving towards an organization inspired by this way of working, in multiple ways. For this reason, we conducted a two-day workshop on Scrum.

One of the teams planning the next sprint

Tuesday and Wednesday were both designated for scrum related activities. First, there was an elementary introduction to Scrum – an outline of goals, roles and responsibilities. The next day and a half was reserved for group work. The testers formed four groups and started developing a small game from a brief outline of a game concept. Each team had a designated Product Owner that they discussed the content of their games with and a Scrum Master. They used Scrum poker for estimating the workload, discussed the priority of game features and bargained the scope of each sprint with the PO. They worked as a team helping each other and taking responsibility for unfinished work, held standup meetings, retrospective sessions, and proposed improvements for next sprints. 

Cards used for Scrum poker.Cards used for Scrum poker.

The workshop was a miniature Scrum experience where the sprints were only 90 minutes long. However, the time pressure, PO’s expectations, and the prospect of failing to complete the tasks were very real. This was an intense exercise in communication and compromising, and a good team building activity. In the process, we also did a fair share of dogfooding Unity.


Afterwards, Marc Eriq Quesnel, another of our STE leads, talked about the pitfalls that testers can encounter when the organization moves towards Scrum. Things can go in many different directions. For example, one common tendency is that a tester in a team will be perceived as the process guardian and therefore will be pushed into a Scrum Master role. Moreover, there were discussions about planning poker, which was a new concept to many of us. We also discussed the type of projects and teams that Scrum can be applied in.


On Wednesday evening, we did a really fun team building activity – escape rooms! These rooms are specifically set up and then locked with participants inside. “Prisoners” of each room cooperate to find relevant items and hints around the room. They need to put these clues together to be able to unlock the door and escape the room before the time runs out! Even though this was purely meant to be a team building experience, this problem solving activity is very much like testing! That night we were breaking out of prison cells and mental asylums! At least some of us managed…

One cell, 3 prisoners, 1 hour to escape. Three prisoners, one cell and one hour to escape.

Unity Test Tools workshop

Thursday was another exciting day. Tomek Paszek, one of our Toolsmiths, ran a workshop on Unity Test Tools. The workshop was a mixture of getting to know UTT as a tool for game automation and a hands-on session where we did some test driven development. A big part of the STE team is technically oriented, so this workshop was a good opportunity to refresh the programming skills and also see coding from a new, TDD, perspective.

Communication workshop

On the last day we had a test consultant, Ilari Henrik Egerter, visiting us to run a workshop on communication: “What if you can’t see each other”. We were split into teams and then some severe limitations as to how we could communicate were introduced. The workshop exercised our creativity for communication, and espionage. It ended up with paper planes flying around the room, which led the team with the most effective communication and collaboration to victory. Friday also featured a wonderful solar eclipse, which we all had a chance to observe on a cloudless Vilnius sky.

Freshly manufactured paper planes ready to fly.Freshly manufactured paper planes ready to fly.

So there you have it! If you ever wonder what our STEs do for education and fun, now you know. We will definitely have another off-site week in the future, as it’s a great time to focus on our core tester skills, to learn new abilities and last, but definitely not the least, to increase our “tribal cohesion” – to interact and to feel like the team that we are!

April 16

More Material Design for Your Android Apps

fab iconAndroid developers have been flocking to Material Design since its introduction with the release of Android Lollipop. With the recent update to the Support v7 AppCompat library it has never been easier to add Material Design to target older Android operating systems.

Material Design is much more than just the core theming and styling that you are able to add to your application — it’s animations, layouts, and of course controls. While many controls are available out of the box, there are many custom controls that can spice up your application with even more Material Design. Many of these controls are now available in the Xamarin Component store so you can instantly add them to your Xamarin.Android application. Let’s take a look at a few.

Floating Action Button

Floating Action ButtonWhen developing applications, you often have a main action that your users can perform on a page such as add, edit, delete. The floating action button (FAB) was introduced to enable you to promote your main action with a beautiful and distinguished circled icon floating on the user interface. The floating action button is great because it helps bring context and awareness to the action that you want your users to perform, and you can add it to your Android app with the new Floating Action Button component.

Once you have the component installed, you can add a FAB to any layout by referencing the custom control.

            android:src="@drawable/ic_action_content_new" />

Now you can find the FAB and add a click handler just like any other button.

var fab = root.FindViewById<FloatingActionButton>(Resource.Id.fab);
fab.Click += (sender, args) =>
  Toast.MakeText(Activity, "FAB Clicked!", ToastLength.Short).Show();

Be sure to read through the getting started guide to see how you can show and hide the FAB with a few simple calls or even attach it to a ListView to have it automatically hide when the list is scrolled.


Pager Sliding Tab Strip

If you are an Android user, you may have noticed the beautiful Tabs that are part of the Google Play Store when browsing. The Material theme provides an updated look and feel to tabs, but it doesn’t introduce an updated View Pager Indicator. This is where the Material Pager Sliding Tab Strip component comes in to enable you to easily add highly customizable and beautiful tabs to your Android app.

After downloading the component, simply add the PagerSlidingTabStrip on top of your ViewPager in your layout.

<!--Set pstsPaddingMiddle to false to start tabs on left-->
        tools:context=".MainActivity" />

Then find your ViewPager and PagerSlidingTabStrip and connect them together with any FragmentPagerAdapter.

// Initialize the ViewPager and set an adapter
var pager =  FindViewById<ViewPager>(Resource.Id.pager);
pager.Adapter = new TestAdapter(SupportFragmentManager);
// Bind the tabs to the ViewPager
var tabs = FindViewById<PagerSlidingTabStrip>(Resource.Id.tabs);

material_tabs demo

For a full sample and to see how to customize the pager sliding tab strip even further, be sure to dive through the documentation and getting started guide for the component.

More Material!

Material Design integration into your Android apps doesn’t stop here. Be sure to read through our Introduction to Material Design, Support v7 AppCompat Library, and the new Android Toolbar. Another great resource are the two presentations that Jérémie Laval and I gave at Xamarin Evolve 2014, Android Material Design from Concept to Implementation Part 1 and Part 2.

The post More Material Design for Your Android Apps appeared first on Xamarin Blog.

From Art Director to Asset Store Publisher

What makes someone with a highly successful career as an Environment Artist, Lead Artist and Art Director on AAA titles decide to make the jump to becoming a full time Asset Store Publisher?

When Pete Sekula talks about his career and the games he’s been involved in, such as Far Cry 4 and Tom Clancy’s The Division, it’s with obvious enthusiasm and pride. Clearly, Pete is also good at his job.

So, why quit?

“The revenue I’m earning in the store is beginning to eclipse my salary, and I’m only doing this part time.” Pete Sekula

To be able to make the leap to running your own business you have to be confident that you’ll have a regular and reliable revenue stream.

As a United States citizen, Pete has healthcare insurance costs to meet. He also has a family and a mortgage, so leaving his current position is not a decision he’s taken lightly. But the appeal of working on his own projects and doing things his own way has always been there.

Pete’s company is called Quantum Theory Entertainment. The name being a metaphor for his view on game development: “A fresh idea, no matter how unorthodox, can have a hugely positive influence on your future.”

That’s quite a vision, and, as you’d expect, Pete is a real enthusiast. From being an avid teenage gamer he went on to trying things out for himself at home in 3D Studio Max and Photoshop and attended two separate schools where the classes were way too simplistic. He kept working at his portfolio and landed a position at Ubisoft where he’s worked since 2002.

Though it’s obvious that he enjoyed his time there hugely, the dream of making content that fulfilled his vision of how a game should look, and ultimately of making his own game, was always there and became more and more important to him.

Around four years ago, Pete heard from yet another colleague that he’d been using Unity in his spare time, and had gotten so far as to start making and selling his own content on the Asset Store.

Just out of interest, Pete asked: “How much do you make a month?” “Around 100-150 bucks,” came the answer. That was enough to interest Pete in becoming a publisher, and over the past four years he spent his evenings and weekends building a business.

A lot has happened to both the Asset Store and Quantum Theory Entertainment during that time. Last month, the Asset Store passed the 1 million monthly downloads mark, and Pete now has a significant portfolio of assets for sale.

Urban Construction Pack PolyWorld: Ancient East Low Poly Toolkit Rocky Hills Terrain Pack PolyWorld: Ancient East Low Poly Toolkit Desert Terrain Pack PolyWorld: Woodland Low Poly Toolkit Better Rocks and Cliffs PolyWorld: Woodland Low Poly Toolkit Desert Terrain Pack Alpine Terrain Pack Better Rocks and Cliffs Alpine Terrain Pack Urban Construction Pack Quantum_LogoSmall Pete Sekula

He also has a regular enough and high enough income to be sufficiently confident to take the leap and support his family exclusively through what began as a side interest.

What’s more, becoming an independent Asset Store Publisher will also give him the time, space and money to start working seriously on a game of his own. Pete has lots of ideas, he’s a VR enthusiast and, with his skill set, very big on making beautiful-looking games. His long-term goal is to publish one on Steam.

While Pete’s driven to create high-quality artwork, he recognizes that, in an industry that can support both Call of Duty and retro style platformers, there’s a niche for everybody:

“From 3D games on consoles to 2D games on mobile, people will always want great experiences. Your content in the Asset Store enables aspiring devs to reach them all.” Pete Sekula

Pete’s advice to would-be publishers:

  • Promote your assets on Twitter, YouTube and the Unity forums with plenty of screenshots.
  • Be thorough with your documentation and “how to” videos to market your content and reduce support requests.
  • If you’re an artist, develop a style and be consistent throughout your product line.
  • Work hard, experiment, try again, and don’t be afraid of an original idea.

Best of luck Pete!

April 15

Crédito Agrícola Banks on Xamarin Platform, Test Cloud, and Insights

Credito Agricola LogoCrédito Agrícola, one of the largest banks in Portugal, serves more than 1.2 million customers across 700 locations. In order to better support their increasingly mobile customer base, the bank created consumer banking apps for three mobile operating systems in the platform-specific languages.

The costs of maintaining three separate teams and code bases quickly added up, driving Crédito Agrícola to seek out a cross-platform mobile development solution for their next app. Designed for enterprise banking customers, it was imperative that the app deliver a high-quality, fully native experience on iOS, Android, and Windows.
“We analyzed tools from the cross-platform development market, looking at factors including code reuse and compatibility of the final code, and ensuring the end-user experience was equal to that from native development—without compromising performance,” says Jorge Correia, Applications Development Director at Crédito Agrícola. “None of the solutions we looked at met our needs, until we found Xamarin.”
Impressed by the PoC that Xamarin Premier Consulting Partner Xpand IT produced, the bank engaged them to produce the app. Crédito Agrícola has gone all in with Xamarin, building the app with Xamarin Platform and maintaining quality with Xamarin Test Cloud and Xamarin Insights.
Credito Agricola app on an iPhoneXamarin Platform allowed the Xpand IT team to create the seamless user experience across platforms that was so important to the bank, while Xamarin Test Cloud enabled them to move away from manual testing to accelerate release cycles and find critical bugs before the app went live. Higher quality was further achieved by using Xamarin Insights, an intelligent analytics and crash reporting system that helps the team be proactive by spotting potential problems early to enhance the user experience.
“Xamarin Insights is especially important because when users encounter problems with mobile apps, rather than reporting them they may simply stop using the app,” Viana says. “With Xamarin Insights we can become aware of problems even if the users don’t complain.”
Download the full case study to learn more about the benefits that Crédito Agrícola has found from using Xamarin, including faster development through 75% code reuse and enhanced quality through Xamarin Test Cloud and Xamarin Insights.

View the Case Study

The post Crédito Agrícola Banks on Xamarin Platform, Test Cloud, and Insights appeared first on Xamarin Blog.

A Designer’s Guide To Using Video Ads

Opting For Video Ads:

Making a great game is just the start as they say.  Understanding the best way for your game to make revenue is vital if you want to be able to make games professionally. In this post we will look at how you can use advertising in your game to generate advertising revenue without annoying players.  In fact we aim to show that by treating advertisements as part of the overall player experience design, users may even come to love ads.

What Not To Do:

It’s very easy for ads to get in the way of the player. Banners, for example, take up space on the screen, sometimes obscuring vital information or being placed in a way where they can be triggered accidentally. What’s worse is that the players quickly learn to ignore those areas of the display. The only way banners get noticed once that has happened is when they become visually distracting – something that typically breaks the user experience.

Interstitial ads are much more effective at grabbing players’ attention, but we have to be careful with their frequency and position.  If we show them too often, we risk irritating players and that makes them much more likely to churn. We don’t want that!

Now I’m not suggesting that Interstitials have no place in the mix. We do, however, need to understand their limitations and where in the flow of the player experience that it would be least damaging. Better yet, where in the game’s design it might actually be beneficial for players to have a break. In games which have a series of intense periods of play, users can’t indefinitely sustain the demanded high level of concentration or energy needed, especially on a mobile or tablet device. Players will eventually just give up, and worse, if there is no opportunity for a break they will may associate the game with that fatigue and may choose a less intensive game next time.  Over the long term players need a natural down time.  In design terms we need to think of this like a pendulum with players’ engagement gaining intensity on the downswing, leading to increasing fatigue as they reach the top of the tick, and then relaxing followed by a building desire to act which is at its peak as the pendulum returns with the tock.  A great example of this is a game like Dumb Ways To Die 2.

Video Interstitial:

In Dumb Ways To Die 2 we have an intense and escalating game play with players being asked to comprehend a short form mechanic – perform it successfully and then do the next, only faster each time.  Once you die you can easily replay, but when you return to the map (a menu for collections of mini-games) the game shows you an interstitial. This is the point of least resistance where players have already decided on a change of pace.

It’s essential that mandatory video advertisements such as interstitials can be skipped and that the players can see how much time is remaining so that we don’t build up resentment.  These kind of ads usually don’t have any rewards associated with them, unlike most of the other uses we will discuss here. But, this also means that they can be useful for games which don’t have a natural currency or suitable In App Purchases.  However, there are consequences. This approach inherently requires us to intercept the player experience and not only limits the frequency we can show such ads it also affects the nature of their engagement with them. Our motivation for watching an ad is dramatically changed when we opt to do so.

Choosing To Watch an Ad:

Angry Birds Go

There are a couple of factors which affect players’ willingness to actively choose ads. The ad content itself must be relevant, i.e. showing a game player an ad for another game, and they should also be short – somewhere between 15-30 seconds. However, there usually has to be something in it for the player. That might be a number of things from coins or resources in the game, to extra lives. Yet these rewards also have to be relevant to the player and repeatable – there must always be a reason for the player to watch another ad. If I unlock a major item or a new level by watching one video, that’s a great value but unlikely to create the scale of views needed to drive enough revenue to make that worthwhile. Equally, if watching videos unlocks enough power-ups to imbalance the game then you have broken the reason to play.

Angry Birds Go uses video ads to allow players to obtain a free boost, but only at the start of the race.  This doesn’t overpower the experience but it does require a player to switch their attention from the game strategy to the video playback.  The motivation is clear: If I want a boost in my next race then I will get it by exchanging my time watching this advertisement.

Other games choose to do this at the end of the game. For example in Sonic Dash, players have a chance to continue their existing run after ‘dying’ by either using a ‘Revive’ token or by watching a video ad.  The ad allows the player to break from the intensity for a brief moment before restarting play, which can help their performance (at least it does for me).

What’s important is that the payoff for watching the video is intrinsically part of the game itself.  There is no separate incentive to download the advertised game, but if they choose to then it’s because they liked the look of the game. That’s what at the end of the day provides the revenue and at the same time reinforces their engagement with your game.

Added Incentives:

This leads us to another realization – that we have to make the rewards for watching video compelling and something which players want. In Angry Birds Transformers, after a successful run they have a section where you are showed your score and offered the chance to double your score if you watch a video at that time. For this kind of ongoing action game it’s the perfect way to reward players for their engagement not only in the gameplay but also in the ads themselves.

Meaningful Benefit:

Sometimes the reward can be tied to a significant action within the game.  In the case of wickedly replayable Retry, the player can choose to unlock the next save point with either a coin or by watching a video replay. This reward has a meaningful benefit for players.  It comes at a point of success and frustration and can help you to avoid the pain of having to repeat your multiple attempts to gain that landing point in the first place.  They key to this technique is to understand what players value and to help them obtain that value in a way which they will happily repeat such as unlocking a new save point or perhaps replenishing your fuel for a racing game. Watching the video in the Retry example gives the player what they seek directly; but it’s not suitable for all games and can often be hard to scale.  Instead other games seek to use video replays to speed up the acquisition of some form of currency or resource which are usually a more indirect means of obtaining that item of value.

Earning Free Coins:

Games like Hill Climb Racing show that there is genuine value to the player in terms of In-Game Currency. It helps acquire new vehicles, fuel, terrain, and other bonuses. It’s something which is naturally ephemeral and disposable which makes it a perfect option for monetization. But this is not always the case.  For some games, the currency works as a proxy for the players’ progress in the game. This makes using it as a reward for video problematic. In the case of Hill Climb Racing they chose to put an emphasis on the purchase of coins over the ‘Free Coins’ gained which means that they put it at the end of a long list of purchase options. This can be a problem for some games and instead it’s often better to be more upfront about communicating the option of watching video to gain those coins or resources.

As a designer remember we need to be offering something that players value, which means we have to be aware of the inflationary impact on our game’s economy if players can obtain new resources. There is a great deal of balancing necessary to support incentivized ads like this; just as when we add a new resource generator in the gameplay.

Obvious Delight:

Looking at Hipster Whale’s excellent Crossy Road shows us that we don’t have to compromise the playing experience when using ads.  We can tell players up front what they will get if they choose to watch ads in a way which isn’t embarrassed and which clearly benefits the player. The offer is presented at the end of your run alongside your score and the ability to play again. It’s also not always available which means that we don’t learn to ignore it. We are also given an incentive to act now as we have “only 56 G to go” before we can have another go to gain a random character. Oh! And watching a video will earn us 20 G straight away.  Players don’t feel cheated by this approach, they feel empowered. Watching ads in Crossy Road becomes entertainment and a way for me to discover new content and I get to win another character with a pull of a lever. I just unlocked the Celebrity. Wow that’s funny… she drops money when she is hit by a car… let’s watch another video and get some more coins. That’s obvious delight.

In Short:

Making the most of video ads in your game is a design process like any other player facing feature. We have to consider:

  • What’s in it for the Player?
  • How Does This Impact The Player Flow?
  • Is The Incentive Scaleable?
  • How Do We Make Sure This Doesn’t Break The Game?

And for those of you want to see our recent webinar on this same topic, you can view it here:

April 14

Join Xamarin at Build 2015

Microsoft Build 2015 is just two weeks away, and we have several ways for you to meet the team and learn more about the latest from Xamarin on mobile development in C# and Visual Studio. We’ve got a lot of events around the conference, and we’d love to see you at one or more of the following:

Build 2015 Kick Off Party

Xamarin Build 2015First, join us on Tuesday, April 28th, 2015 at Jillian’s Sports Bar & Billiards Hall, right across the street from the Moscone Center at 175 4th Street from 7:00-10:00pm. Nat, Miguel, and myself, along with the rest of the Xamarin crew, will help you kick off Build 2015 with a bang!

  • Charles Petzold will be there to sign his Creating Mobile Apps with Xamarin.Forms book.
  • You’ll also be the first in the world to don our brand new Xamarin t-shirt, and if you wear it to Day 1 of Build, you’ll even have a chance to win one of three developer rigs valued at $10,000! Additional details and RSVP here.

Speaking Sessions

Xamarin CTO Miguel de Icaza on stage at Microsoft Build 2014We have two official sessions featuring Xamarin this year. Be sure to check the final Build schedule for exact times and locations of these talks.

  1. Go Mobile with C#, Visual Studio, and Xamarin with co-founder and CTO Miguel de Icaza and Developer Evangelist James Montemagno
  2. Building Multi-Device Applications with Xamarin and Office 365 APIs with Developer Evangelist James Montemagno

Xamarin Booth

As an official sponsor of Build 2015, we’ll be at booth #317 in the Visual Studio Partner Pavilion. We’ll have demos, swag, and we’ll be giving away copies of Charles Petzold’s book, Creating Mobile Apps with Xamarin.Forms with scheduled signings. Stop by to say hello and get your book signed!

Remember to RSVP for the party now, and we’ll see you soon in San Francisco!

The post Join Xamarin at Build 2015 appeared first on Xamarin Blog.

Unity Networking in Super Dungeon Bros

The first phase of our plan to create a networking solution that allows Unity developers to build multiplayer games for any type of game with any number of players is coming to a game engine near you soon.

Tyler LaGrange and Networking Engineer Mark Owen of React Games, have been using Unity Networking (formerly known as UNET) in upcoming title Super Dungeon Bros since it won the Development Award for social games at Game Connection Europe 2014 and attracted funding from an independent publisher. It’s the studio’s first multiplayer game.

Tyler and Mark highlight a number of advantages to using Unity Networking. One big benefit for Super Dungeon Bros, which will target desktop platforms, Xbox, and PS4, is that the underlying engineering framework is cross platform compatible, so very little customization has been necessary.

“We didn’t have to change the network code at all. We had it running on a PC, and then we put it on the Xbox. It just worked.”

Unity Networking is flexible enough to suit a wide range of games with both a high level and a low level API. When the ReactGames team agreed to help out with a Unity Networking demo for GDC 2015, they were able to get something up and running quickly just using the high level API and were impressed by how easy it was prototype and iterate.

With their game now well into production, Mark splits his time roughly 50-50 between the high level and the low level API. In general, he’s a big fan of the amount of automation Unity Networking makes possible. “It generates a lot of code, saving us a lot of time.”

An innovative feature that Mark, who’s an experienced network engineer, highlights is the way that Unity Networking combines a P2P and Client Server architecture into a hybrid where users can just switch between the two. It’s not something he’s come across before.

networking shot

Once Unity Networking is released, Tyler feels sure that we’ll see a lot more multiplayer games being made with Unity. Indeed, with Unity Networking following the usual Unity paradigm of allowing anyone with an engineering background to pick up the tool and start using it, he confidently predicts that Unity Networking will help introduce networking to a number of people who haven’t tried it before.

“No-one is saying that making a networked game is super easy, but if you do it in the right way, and start planning your networking implementation from the start, it doesn’t have to be a major pain.”

This is something the team have learnt the hard way as Super Dungeon Bos wasn’t originally conceived as a multiplayer game. However, Mark has found that Unity Networking has actually catered well for that scenario, even though it’s not what he’d recommend doing.

In developing Super Dungeon Bros, Tyler’s team have employed Mark as a fulltime networking engineer with three other members of the team helping out from time to time. Overall, Tyler estimates that adding the game’s networking is taking up between 10 and 20% of their engineering resources.

If you are considering a multiplayer game, Tyler and Mark have some advice:

  • Determine what type of game you’re making and do your research and planning up front
  • There are lots of cool implementations out there – have a look at what other people have done
  • Don’t be afraid, and don’t be afraid to make mistakes initially

Best of luck, React Games!

Hone your dungeon battling skills with the Dungeon Bros beta, or follow Dungeon Bros on Twitter for all the latest news.

April 13

Xamarin Dev Days is Coming to Your Town

We’re working with our partners and community to bring full day mobile development events to a town near you with Xamarin Dev Days.

What are Dev Days?

Xamarin Dev Days are an intense, hands-on learning experience. More than just your average hackathon, they are free, day-long community events focused around learning how to build native iOS, Android, and Windows apps with C# and Xamarin through valuable sessions from Xamarin, our partners, and your local developer community.

After a morning of learning how to build beautiful mobile apps with Xamarin, you’ll get a chance to put your new knowledge into practice with hands-on labs, mini-hacks, and an opportunity to interact with Xamarin experts in your community. We will be there to help you get up and running, debug code, and have fun building mobile apps and experimenting with the latest mobile technology.
Xamarin Dev Days Map

Xamarin Dev Days Near You

Today, we are announcing the first round of Xamarin Dev Days including:

This is just the start for Xamarin Dev Days — we’re adding more cities and want to know where you want us to come next, so head over to the Xamarin Dev Days site to see a list of our planned stops and to request your city if you don’t see it on the list!

The post Xamarin Dev Days is Coming to Your Town appeared first on Xamarin Blog.

April 10

Join Xamarin at Mobile Dev + Test in San Diego, CA

Join Xamarin at our first Mobile Dev + Test conference in San Diego, CA from April 14-16, 2015. Key members from the Xamarin team will be available to answer your questions, discuss your apps and projects, and show you what’s new in Xamarin Test Cloud.

San Diego, CA

James Montemagno, Xamarin Developer Evangelist, will talk about mobile’s impact on development and testing on Thursday, April 16, 2015 at 11:00am.

Charles Wang, from our Xamarin Test Cloud team, and I will also be presenting on using Xamarin Test Cloud to perform automated UI tests on hundreds of real devices on Thursday, April 16, 2015 at 11:00am.

Stop by our table and say hello — we look forward to seeing you in sunny San Diego!

The post Join Xamarin at Mobile Dev + Test in San Diego, CA appeared first on Xamarin Blog.

An Update on Unity Analytics Open Beta

Unity Analytics Open Beta Announces Multiplatform Support, Enhanced Functionality, More Developers Wanted!

Two months ago, we introduced Unity Analytics to the community and received great feedback from thousands of users. Based on this feedback, we’re thrilled to announce that Unity Analytics has expanded platform support and an improved feature set!  We now support the following platforms:

  • Mobile – iOS, Android, Windows Phone 8.1
  • Desktop – Windows, Windows Store 8.1, Mac, Linux

Supporting Unity’s mission of democratizing game development, we firmly believe in empowering developers with an analytics tool that is accessible, intuitive, and actionable. We have a dead simple SDK integration that takes less than 10 minutes to implement with a few lines of code. Our clean and simple dashboard gives you the high level metrics you want to see at a glance. We’ve built features (with your input!) that help you analyze game design and identify areas for improvement.

It’s important for us to address the needs of new and experienced Unity developers for an analytics solution. Our goal is to expand our pool of testers and gain feedback across a more diverse group of Unity developers. By using Unity Analytics, beta testers will help us build features that they want!


Since our last update, we’ve added several improvements based on community feedback:

  • Deeper Custom Events analytics – Visualize your custom events and parameters in richer detail.

The Data Explorer now supports event parameters based on numbers, strings or Boolean values. Numbers are summed and averaged. Strings and Booleans are categorized, letting you see a breakdown of user behavior. These breakdowns can be seen in bar chart/pie chart form, or plotted over time.


  • Funnel Analyzer –  updated with funnel drill down details, visually clean and easy to read layout.
  • Flexible custom event limits. We’ve added flexibility to how we calculate your event maximum. Instead of a flat cap, we rate your overall usage, giving you the freedom to send us the data you need to track.
  • Enhancements to the Unity Analytics dashboard – Share dashboard pages via a URL, save reports in Data Explorer, editable fields in Funnel Analyzers and Segment Builder, and more!

Plus, early in the Unity 5.x cycle we’ll be integrating Unity Analytics with the Unity engine.This will make analytics available instantly to all Unity developers eliminating the needs for SDKs.


Sign up now. The beta is free to all Unity developers! As always, we’re grateful to the Unity Community, and we’re looking forward to hearing what you think and learning what you need.

After signing up, if you have thoughts and experiences you want to share or features you want added, please stay in touch. The best place to request new features is the discussion area in the Unity Analytics forum. If you run into any difficulties, you can also send a note at https://analytics.unity3d.com/support.

Beggin’ for a Beacon Xamarin Contest Winner!

Beacons, small pieces of Bluetooth-transmitting hardware, have simplified the ability to create context-aware apps for mobile devices. Given the powerful potential beacons have for impacting the world, we wanted to hear how the Xamarin community would use beacons to improve their lives in fun, creative, and practical ways.

After much deliberation, we are pleased to announce the final “Beggin’ for a Beacon” winner, who will receive a Xamarin + Beacons swag extravaganza:

The Fire Beacon Safety Package by Matthew Kallechy

Matthew’s idea will provide homeowners, office safety managers, and school teachers with a simple, effective way to prepare for emergencies using test fire emergency safety plans, smartphones, and beacons. Matt, we loved the blog post and good luck with the Hackathon!

The response to this contest has been amazing, and we thank you all for your wonderfully creative and real-world applicable submissions. Our contest is just the tip of the iceberg; beacon potential is everywhere. We encourage you to experiment and build your beacon-enabled Xamarin app today.

Search @XamarinHQ and #BeaconPotential for even more ideas that are just begging for a beacon.

And, as we mentioned in the contest rules, a few lucky submissions will also be receiving 1:1 mentorship and help building their apps from our beacons partners, BKON, Estimote, and MobStac. We’ll be reaching out to all winners via Twitter, so keep your eyes peeled for a DM!

The post Beggin’ for a Beacon Xamarin Contest Winner! appeared first on Xamarin Blog.

April 9

Xamarin’s Got Game (Development)

If you’re new to game development, you may be wondering what framework is right for you. Luckily for C# and F# developers, Xamarin supports a wide range of powerful options like SceneKit and SpriteKit on iOS, as well as cross-platform frameworks including OpenTK, CocosSharp, and MonoGame.

For developers just getting started, we recently published several articles that provide an Introduction to Game Development with Xamarin based on CocosSharp and MonoGame.


Bastion, the chart-topping iOS and Mac app, was built with MonoGame

If you’re not familiar with MonoGame, it’s a game development framework based on Microsoft’s XNA. As opposed to a full game engine, using MonoGame may require setup code to perform some simple tasks, as well as an understanding of computer graphics theory. MonoGame is a good choice if:

  • You’re familiar with the Microsoft XNA framework
  • You’re interested in 3D graphics, lighting, or shaders (custom code that is executed by the graphics card for advanced visual effects)
  • You’re extending or porting an existing XNA game to additional platforms
  • You’re interested in learning about graphics programming – MonoGame shares rendering concepts with other rendering APIs like DirectX and OpenGL


Angry Ninjas

Source for Angry Ninjas, a complete game written with CocosSharp, is available on GitHub

Alternatively, CocosSharp is a full game engine that provides classes and methods for performing the most common game development tasks. It’s the preferred approach if:

  • You’re interested in creating 2D games
  • You’re familiar with the native Cocos2D game engine
  • You’re looking for the shortest path to a working game

If you’d like to learn more about developing cross-platform 2D games with CocosSharp and Xamarin, check out the video below from Channel 9 and Xamarin Developer Evangelist James Montemagno:

If you’ve ever wanted to make games, either professionally or as a hobbyist, our game development guides are a great place to get started today.

The post Xamarin’s Got Game (Development) appeared first on Xamarin Blog.

Integrating Unity Ads

In this post we are going to look at Unity’s new ad service as well as how to integrate it into your current projects. Our goal is to make it easy to make money using your current (or hopefully future) player base with very little overhead and maintenance. We will see exactly what you need to do to integrate advertisements in your project (trust me, it’s not a lot), as well as some of the “gotchas” that might slow you down along the way.

Creating Your Account

Setting up ads in a project is really only a couple of steps. The first thing you will need to do is go to the Unity Ads website and create an account (it’s free and only takes a few minutes). Once you are logged in, you will be presented with the Ads Dashboard. To begin monetizing your project, click “Start Monetizing” (you could also click the “Games” menu item on the left and then “Add New Game”).

Monetize Users

You will then be prompted for some basic information regarding your project. Go ahead and specify your target platform and your project name. If your project is already deployed to market you can look it up. If your project is still in development, don’t worry. There is a link at the bottom you can click to add the development version to your account.

Screen Shot 2015-03-31 at 1.15.46 PM

An interesting takeaway here is that if your game is for both iOS and Android, you will create two different game profiles for the same game in your account. This means that you will have different ad IDs for both versions and thus will be able to track and manage your ads per platform instead of all together.

Now that your game is added to your Unity Ads account, you will be presented with your game dashboard. There are a lot of controls, options, and information panels here, but we are only going to concern ourselves with the “Game ID”. This ID is how we can control the ads shown as well as get the credit for any views or clicks our users provide.

Screen Shot 2015-03-31 at 1.17.29 PM

(This image is from a sample game I have created for this article. I highly recommend you create your own account and game and not use my sample Game ID or else I will get all of the monetization credit for your games. That being said, if you feel like using my Game ID, I won’t stop you. Who doesn’t like free money?)

Integrating Ads into Your Project

Now that you have your Unity Ads account set up, you can begin showing ads in your project. From within Unity, navigate to the Asset Store (Window->Asset Store) and download and import the Unity Ads package. NOTE: currently there will be a warning if you are trying to download the package with Unity 5. This warning is due to the package being uploaded from Unity 4 and is harmless. It just exists currently for backwards compatibility.

Screen Shot 2015-03-31 at 2.32.14 PM

Once the assets are imported into your project, initializing and showing ads is very simple.

NOTE: Since ads are currently only supported for iOS and Android, your editor will have to be targeting one of those platforms in order to see any test ads. Before going further you may want to switch your platform to either iOS or Android in the Unity build settings (File->Build Settings).

In a project, ads are controlled through scripts and there are three lines of code that are absolutely required (and one line of code that should be considered required). The first line is where we give our script access to the Advertisements namespace:

using UnityEngine.Advertisements;

Next we must initialize our ads. This can be done anywhere you like, but it must be done before you attempt to show any ads. The first argument of the Initialize() function is the Game ID we got from the Unity Ads website (remember, use your own and not mine). The second argument is whether or not your game is in “test mode”. Generally speaking, while your game is in development you should always leave this as true. We will discuss this more later.

Advertisement.Initialize ("29239", true);

Finally we show an advertisement. If we are running our project in the editor we will see a generic billboard ad. If we are running this on device and test mode is set to true (see above) then we will see a placeholder ad. Finally, if we are on device and test mode is false we will see a real live ad.

Advertisement.Show ();

Now, initializing the ad system isn’t instantaneous, so you will want to ensure that an ad is ready before attempting to show it. Doing so can prevent errors or bugs that may otherwise plague your experience. You can check that an ad is ready to be shown by using the function isReady()

Advertisement.isReady ();

So putting everything together, a simple script to just show an ad when your game starts up could look like this:

using UnityEngine;
using UnityEngine.Advertisements;
using System.Collections;

public class SimpleAdScript : MonoBehaviour
    void Start ()
        Advertisement.Initialize ("29239", true);

        StartCoroutine (ShowAdWhenReady ());

    IEnumerator ShowAdWhenReady()
        while (!Advertisement.isReady ())
            yield return null;

        Advertisement.Show ();

In the next post we will discuss more advanced ways of using ads as well as how we can build an ad structure using the concepts demonstrated here.

Advanced transitions with vector drawable

As I described in a previous serie of post, vector drawables (and their animated counterparts) are one of the most powerful new visual elements introduced with Lollipop (and soon as a support lib it seems).

In this post, I’m gonna show you how we can achieve the following transition animation by solely using vector drawables and Android’s built-in widget state tracking mechanism:


To build an animation like this, you have to prepare the adequate stage. Afterwards, it’s just a matter of moving each individual pieces of that stage when needed.

In the above video, we can split the final visual in a couple of different parts.

Some like the center dot and the upper-half donut are static pieces, they never move. The two white thin rectangles, symbolizing the hands on a watch, are individual moving parts. The sun, moon and exclamation mark symbols are the varying state of the visual depending on the input.

Now, that’s only the visible part of the puzzle. If you look closely at the animation you can notice that everytime there is a state transition the right hand seems to be erasing the visible time symbol before the new one fade in.

This is where things get interesting because to be able to achieve this effect you have to get creative with the Z-ordering of your stage.

To understand this better, below is a rendering of all the layers of the visual:

The rectangle you see covering the half-bottom part of the picture is not an artifact. It’s painted with the same color than the overall window background thus acting as a cheap but effective hiding mask.

If I conceal this rectangle, here is what’s lurking behind: the other half of the visible top donut

To create the aformentioned effect, we will be moving that half-bottom donut to cover the top one, synchronizing it with the right clock hand. When not in use, it will be safely tucked behind our hiding rectangle.

Because vector drawables have a simple bottom to top drawing hierarchy, for this to work correctly we have declare pieces in a specific order:

  • top half donut
  • the 3 time symbols
  • bottom half donut
  • hiding rectangle
  • the 2 hands white rectangle

Based on our animation needs, we then split this further into actual vector drawable <group /> elements to arrive at the following shape (path data removed for brevity, you can download all the XML pack at the end of the article):

<?xml version="1.0" encoding="UTF-8" ?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
	<group android:name="background">
			android:pathData="..." />
	<group android:name="timeItems">
			android:pathData="..." />
			android:pathData="..." />
			android:pathData="..." />
			android:pathData="..." />
	<group android:name="coverBackground">
			android:pathData="..." />
			android:pathData="..." />
			android:pathData="..." />
			android:pathData="..." />

State tracking widget

Before we dwelve into some more animation tricks, we first need to investigate how to make widget to represent our triple state because there is nothing in the default framework that allow this.

The good news is that, as I showed in a previous blog, it’s very easy to create a custom, state-aware widget which is what we are going to do with this:

public class TriStateView : View
	int selectedIndex;

	public int SelectedIndex {
		get {
			return selectedIndex;
		set {
			if (value < 0 || value > 2)
				throw new ArgumentOutOfRangeException ("value");
			JumpDrawablesToCurrentState ();
			selectedIndex = value;
			RefreshDrawableState ();
			Invalidate ();

	protected override int[] OnCreateDrawableState (int extraSpace)
		switch (selectedIndex) {
		case 0:
			return new int[0];
		case 1:
			return new int[] { Android.Resource.Attribute.StateFirst };
		case 2:
			return new int[] { Android.Resource.Attribute.StateLast };
			return base.OnCreateDrawableState (extraSpace);

By setting our state transition drawable as the background of this view, it will automatically react to state changes and animate accordingly. Using the normal state tracking mechanism also means that interruption mid-animations are gracefully handled for us.

One more trick

At this stage, I won’t go over every details of the individual animation definitions, they all tweak standard things like alpha and rotation on each piece of our stage. Nonetheless, you can read my animated vector drawable entry for more details on how they work.

I will only show a little trick that is useful when setting up more complex stages like this: zero-duration animators.

Take the following example that animates the bottom-half donut (to create the progressive hiding effect):

<?xml version="1.0" encoding="UTF-8" ?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
		android:interpolator="@android:interpolator/decelerate_quad" />
		android:valueType="floatType" />

The idea is that right after we have covered the entire upper-half, we want to immediately tuck it back under our hiding rectangle. This is because we then fade-in the new time symbol which would be hidden too otherwise.

Using zero-duration animators allow you to do just that by applying direct values to animated properties. The fact that there is a from attribute doesn’t matter much but since those properties are write only it will prevent object animator from complaining about missing accessors.

I use this in a couple of places to reset the stage state (since vector drawable instances are reused across transitions), quickly move away elements or hide them from view when they are not useful anymore.


You can download the XML definitions and widget source here.

Bug alert: there is currently a parsing bug where the animated vector drawable inflater will greedily read the entire document given to it. This causes an issue if you declare them inline in your animated state transition XML file because it will corrupt your entire state by reading everything instead of stopping at its corresponding end tag. The workaround is to always declare them in their own XML files like I did.

April 8

Upgrading MUD to Unity 5

Those of us who were around back in the day all remember M.U.Ds. Multiplayer realtime fantasy worlds that, at any rate initially, had to be text-based.

MUD is a modern take on the M.U.D. genre. A sandbox game with procedurally generated environments, some sophisticated AI and some mud. Yes, actual mud, because, in MUD, survival involves digging around in the the craft ‘n’ build fashion that we’re all familiar with from another game.

MUD has been under development by a team of eleven or so from Pure Bang Games since the turn of the year, and there’s already a playable. The goal is to launch an early access game around the beginning of next year.

It took the Pure Bang team a couple of days to upgrade MUD from Unity 4 to Unity 5. Here’s how they got on.

First things first. Shaders. The team had to do about a day’s worth of shader debugging, something that General Programmer Jonathan laughingly described as “an enduring process.” He didn’t find it difficult, however.

Script updating was painless. Jonathan says: “If you’ve designed your code in the correct way and you’re not relying on specific features other than where you need them to fetch the correct references at initialization, it’s a breeze.”


He further describes the integration with PhysX 3.3 as “seamless,” and notes that it’s given the game a significant performance boost.

All in all it took about two days to get MUD to the point where it would compile and run in Unity 5. Then, the more enjoyable task of making things look better began – changing the ambient light, the sunlight and so on.

Technical Artist Drew has a lot of praise for the new skybox feature:

“It’s something that I’ve been particularly happy with. I spent a couple of days just playing with all the different things you can do with new procedural skyboxes – adding little bits and pieces on top of them and making the light slowly change during sunrise and sunset.”

“We have a day-night cycle in our game and you can get these really nice colors across the horizon if you do it right. I’m just super happy with how everything’s looking.”

Generally, the team was very pleased with what they were able to achieve in a short space of time. By using the Unity 5 Upgrade Guide they could quickly identify all the areas of their game that needed attention.


To their relief, the major plugins MUD relies on were already Unity 5 compatible at launch, so all that was needed was a simple update and replace.

The team use NGUI (which they’ve gotten so used to that they’ve continued to use it), Sunshine! (for volumetric lighting and dynamic shadows) and Sky Master Ultimate amongst other packages. They’ve also bought a number of models from the Asset Store for prototyping purposes, and they’ve grown so attached to some of them that they’re still in the game – they’ll get replaced eventually (promise).

We look forward to following the progress of MUD, and to delving and duelling when the game launches!

Pure Bang Games is a small studio with a big history. It’s been around since 2010. The studio’s first release My Pet Rock launched on Facebook in 2011 and gained an avid following.

Six Great Tools for Better App Quality

Build Better Software with Xamarin

Xamarin is proud to be one of six services taking part in the App Quality Bundle, a limited-time package for developers who are serious about improving software quality. The App Quality Bundle allows you to equip your team with the ultimate toolset for building better apps, so you can find and fix bugs quickly, increase developer productivity, and deploy with confidence.

The bundle includes:

  • Xamarin Test Cloud: Automated Mobile App Testing
  • Runscope: API Monitoring and Testing
  • Sentry: Modern Exception Tracking
  • CircleCI: Continuous Deployment
  • Code Climate: Automate Code Review
  • Ghost Inspector: Automated Web Testing

The bundle is available now through April 15, 2015 for $999 (89% off the total bundle value). To find out more and to purchase the App Quality Bundle, visit https://buildbetter.software.

The post Six Great Tools for Better App Quality appeared first on Xamarin Blog.

April 7

Weekly iOS 64-bit and Metal update

We’ve been hard at work stabilizing and optimizing iOS 64-bit support in Unity 4.6 and 5.0 and given that this is of interest to such a large percentage of you, wanted to begin giving everyone weekly blog updates on progress. Our Sustained Engineering and QA teams have really stepped up the pace of testing and releasing in order to allow us to ship both 4.6 and 5.0 patch releases each week which means we’re making improvements and shipping bug fixes at an extremely rapid pace at this point. We highly recommend that all production teams working toward releasing iOS 64-bit titles adopt every patch release as it ships.

All patch releases for 4.6 and 5.0 can be found at https://unity3d.com/unity/qa/patch-releases.

All monthly maintenance releases for 4.6 and 5.0 can be found at http://unity3d.com/get-unity/download/archive

For reference and more context about what is going on with iOS 64-bit and Apple’s requirements, please check out the blog post on iOS & ARM64 here, and our in-depth strategic plan for IL2CPP here.

So without further ado, here’s the status update:

Status of 64-bit/Metal support in Unity 5.0.x

  • 5.0.1 shipped Wednesday, April 1st. This release includes il2cpp and other iOS fixes but does not contain build size improvements.  The first set of build size improvements will be included in the next patch release, 5.0.1p1.

  • Download Unity 5.0.1 at https://unity3d.com/get-unity/update

Status of 64-bit/Metal support in Unity 4.6

Our current release plan

  • 5.0 patch releases are scheduled to be released each week on Wednesdays.

  • 4.6 patch releases are scheduled to be released each week on Fridays.

Last week’s release was accelerated due to the seasonal holidays on Thursday and Friday. The regular Friday schedule for 4.6 releases will resume this week.  Also as a result of the holiday schedule, the first 5.0.1 patch release will be released on April 15 and the weekly patch release cadence for 5.0 will continue from then on.

Some important information to remember

  • It is necessary to update your projects to 4.6 at the very least to enjoy 64-bit support on iOS. 64-bit will only ship in 4.6.x and 5.x releases.
  • Apple has announced that they will require all apps on the store to include 64-bit support with any updates as of June 1, 2015.

  • We are doing weekly releases with all bugfixes. We can’t fix bugs if they’re not reported, so please report any issues with il2cpp builds the moment you discover them.

  • Internally, our developers collaborate on a single version of IL2CPP which is ported to 4.6 and 5.0 -based patch release branches at the last possible moment in order to release as many fixes and improvements as possible in each release. The cutoff date for fixes in each weekly patch release is several days before the release, to give us time to test and approve each release.

About the binary size increase issue

We’re aware of the issue and have been working hard behind the scenes to address increased runtime executable file sizes when using il2cpp, and have made enough progress that we can now begin releasing the improvements. The first set of those improvements in Wednesday’s 4.6.4p1 release with additional improvements to follow.

WebRequest performance and stability

The WebRequest APIs have been a significant cause of performance and instability problems for a number of customers over the past several weeks. We have been, and will continue to, fix every bug and performance issue (as reported to us) as quickly as possible.

We’ll be working on providing these updates regularly on the blog so make sure to check back each week to get a heads up on the latest progress with 64-bit iOS support and il2cpp.

Xamarin for Students Gets Even Better with Expansion to Visual Studio

Today, we are incredibly excited to announce the expansion of our Xamarin for Students program to include support for Visual Studio, furthering our mission to make it fast, easy, and fun to build great mobile apps.


Now, students get free access to everything they need to become mobile app developers virtually overnight, creating native iOS and Android apps with Xamarin and Visual Studio. In the competitive job market, Xamarin for Students enables students to acquire highly in demand mobile skills free of charge.

Since launching last fall, Xamarin for Students has been a massive global success. We’ve responded to your feedback, and are now offering even more powerful solutions to students worldwide. As of today, Xamarin for Students includes:

  • Support for building, deploying, and debugging iOS, Android, and Windows apps from Visual Studio as well as Xamarin Studio
  • Xamarin availability in Microsoft Imagine through the DreamSpark catalog. Students can easily discover Xamarin from the Microsoft DreamSpark portal and get started with their Xamarin subscription quickly
  • Xamarin for Educators with Xamarin subscriptions, teaching materials, and complimentary Xamarin Test Cloud hours for instructors currently teaching courses related to mobile development

We are committed to developing the next generation of C# developers, giving more students the ability to publish amazing mobile experiences, and to bringing high-quality, high-performance consumer and enterprise apps to the masses. We also have a burgeoning Student Ambassadors program, which provides additional benefits to students who are leading their campus’ mobile developer community, such as the ability to become Xamarin Certified Mobile Developers. With dozens of representatives across nearly 30 countries, Xamarin Student Ambassadors not only get free subscriptions to the Xamarin platform and Xamarin University, but also access to Xamarin mobile development experts, opportunities to speak at events, and complimentary Xamarin Test Cloud hours to become automated testing pros.

The bottom line: Xamarin loves students. All currently enrolled students in a degree or diploma granting course of study at an accredited college, university, or high school are encouraged to apply.


Visit our student page to learn more and apply now – and get started building and publishing your own amazing, native mobile apps with Xamarin.

The post Xamarin for Students Gets Even Better with Expansion to Visual Studio appeared first on Xamarin Blog.


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.