it has never been a better time to become AET Maui developer building beautiful C multiplatform applications across iOS Android Mac and windows all from a single shared codebase that's right if you're looking to start your doet Maui development Journey you're in the right place this is my 2025 guide to everything that you need to know to jumpstart D Maui development so let's get into it [Music] hey everyone I'm James and I'm back with another starter guide for the new year 2025 for donet Maui development I had a 2024 guide that I'll put up over there and still super valid so you can go ahead and check that out as well but there have been great updates in the last year for Don Maui development not only from idees from The Amazing community and of course with the launch of dad9 so today I want to give you everything that you need to know from what is DM Aly and how do you get started where do you code how do you code and of course all about the community the ecosystem and great learning resources so with that let's get into it all right so the very first thing that you might be wondering is what is net Maui now I have a lot of beginner series and a lot of definitions of net Maui but if you want a One-Stop shop here it is so let's get into it first and foremost no what net is it is a beautiful unified platform for building applications across Cloud web desktop mobile and so much more infusing them with AI you have a single runtime single class of amazing libraries that you can take advantage of and world-class programming languages like C if you can use amazing developer tools like the visual studio family and GI up co-pilot and you can do it on Windows Linux or Mac OS for development and there's a thriving ecosystem across nugate GitHub and amazing components tools and amazing Library vendors as well so then what about mobile and desktop development well that's where D Aly comes in it gives you the base platform to build iOS Android and Mac applications and pairs with wiui 3 in the latest Windows app SDK to give you a single unified layer to build multiplatform applications in a single project with a single codebase and a single API to build beautiful multiplatform user interfaces and access native apis as well so what does this actually mean let's talk about the net Maui architecture at the core level you have do net Maui itself and there's a bunch of things inside of it that we'll talk about but there's also theet runtime and Library these are the things that you get when you install the net DK and you can access common apis like IO and networking with HTTP client for example on top of that sits donet Maui and there's a few things inside of it the important parts are those bindings and core components this specifically is iOS Android and Mac Catalyst support foret the D Maui team provides the capabilities to runet and access the apis for iOS Android and Mac from C now in addition to that there's wiui 3 and the Windows app SDK now the D Maui team doesn't provide those bindings because that comes from the wiui team but what the dalii team does is build these device abstraction layers on top of these four different core components giving you a single API for controls and apis and what happens is when they're rendered you get the native uis and you have access to the native apis of each platform again for Android iOS Mac and windows and the cool part then is that all of this code is shared and better yet all of your app code is also shared so all of your business logic like models view models restful service calls SQL databases things that are common across each app let's talk about the user interface a little bit D Maui provides access to a bunch of different controls and how this works is that each platform has a different Native control for example on iOS for this little spinner it's a UI activity indicator and on Android it's a stylized progress bar what the D Maui team did is they distilled it into a single unified API called activity indicator you create an activity indicator in C or in zaml which is an XML based markup language and when you run your application you get a native control based on the platform that you're running it on and the same thing's true for other controls like UI sliders and seek bars become a slider and there are tons of different controls built directly in to Donnet Maui that you have access to the cool part here is that you can always create your own custom controls there's even a 2d drawing layer as well so you can draw anything that you want so things like Pickers and list views and collection views and checkboxes and switches are all available and render the native controls now you can also lay out your different controls in different pages layouts as well so things like stack layouts grids and flex layouts and scroll views are all available so you decide how you present these controls out of the box you're going to get a great user interface that will render the native controls that are stylized so here is sort of the file new template and to each version of donet ma the donet bot continues to evolve so you might see a newer donet nbot for example but this is a great example in this case for C or for zaml which is an XML base markup language you can create this 100% % in C as well here you have a vertical stack layout and it's laying out some labels a button and an image you can see it looks pretty similar across platform but when you actually look at what is being rendered it is the native control that is being there so it's fully accessible across each platform now that's user interface but what about the apis well the cool part here is that datet is available because of those iOS Android and Mac base layers that the donet Maui team created Ates so it means you have access to system IO link XML core numerics things like that but they also give you access to the raw underlying apis inside of C so things like map kit and UI kit and AR kit for example or corl to do machine learning are available through these bindings and basically they're they're sort of wrappers around the native apis that you have access to so you can access them inside of C with C features like lambdas events and deligans and async O8 support as well and they do the same thing for Android and they do the same thing for Mac OS as well now the cool part here is that while each of these native apis are available inside of C there's also a set of crossplatform apis that are available because many of the apis and device capabilities are the same across each platform the team has abstracted those out into a single API just like they did for the user interface so things like geolocation sending emails vibration connectivity compasses text of speech and so much more are available from a single API so for example if you wanted to have access to geolocation you can use the geolocation class to get the last known location or request the location asynchronously that will also prompt for permissions on each platform the cool part is that D also has full dependency injection support as well so you can register the ocation API as a Singleton and pass it in and inject it through your view model or through your page so you have full access so if you're coming from the world of asp.net core all of that dependency injection and Constructor injection is all available for you as well which is great now after you built your UI and built your application business logic and access native apis you can pile it down into to Native applications that run natively across iOS Android Mac and of course windows that can be distributed in your Enterprise to individuals to test or off to each individual Marketplace that you want to ship your application whether it's just an IOS app an Android app or a Mac windows and IOS and Android app you can ship one you can ship all of them it's up to you IOS and Android and Mac all support full ahead of time compilation to take all your your C code compile down into IL and through an lvm compiler and Optimizer for iOS for example it produces a native armed binary Android can just in time compile and has full native uh ahead of time compilation as well to get an optimized Android binary and Android app bundle that you can ship and the same thing is true for mac and windows as well and of course down at Maui is a full app platform and only some of the things that I've covered here but there full animation system visual State manager navigation data binding system cicd support platform API Integrations and one of my favorite Parts is that donet Maui handles full crossplatform images icons fonts and splash screens and assets for you and it automatically puts them and resizes them and puts them in the right place out of the box you're going to get full default light theme and dark theme support and you can do custom theme support as well and that's how doni enables you to create native applications directly out of the box and there are companies all across the globe building with donet Maui today you readen some of their case studies on the donet website and learn more specifically at donet com as well where David and Rachel did amazing sessions diving deep into Don Maui and I'll put links to those in the show notes below but you may be wondering what about hybrid development what about web development and bringing web to mobile and desktop you sort of think as donet Maui as a platform as well as this native capabilities because net Maui has multiple hybrid development options built into it in fact when you think about net itself it offers a lot of choice going full depth with donet Maui and Native full rendering 100% or blazer for the web for example to render out C and HTML and CSS directly in the browser but right in the middle is a mashup in between with blazer hybrid support to create beautiful hybrid applications with both Don Maui as the core underlying platform and a blazer and web UI being rendered inside of your mobile and desktop application now you can mix and match you can have a little bit of web UI and a little bit of native UI or you can have 100% web UI with blazer support built in so this means with blazer hybrid inside of Don Maui it enables you to basically leverage everything that I just told you about with d Maui including those native controls and apis but blend in your Blazer and Razer components directly this means you have access to this native app container you can fully embed native web UI through the web view there's no internet access required at all it's embedded and packaged into your app you have support for full built-in Blazer controls and from the community as well you can use all of the mai abstractions that I talked about you can distribute directly to your app store and of course you can reuse your web UI across donet Maui applications and your Blazer web applications as well so all this is awesome because it enables you to create these unified applications across mobile desktop and web all leveraging Blazer hybrid and d ma together now I talked a little bit about reusing UI across native and web and that's one of the core features for example example here you ideally would have your web Blazer application and your native Don Maui application as well that's leveraging that Blazer hybrid support and in the middle is going to set a razor class library that is going to enable you to take shared razor components across web and Native which is really cool in fact in down9 there are brand new templates enabling you to do this there's a new net Maui Blazer hybrid and web application this enables you to do file new project get your D Maui hybrid application with blazer hybrid a web user interface and a shared layer in between sharing all of your razor components your pages your components your layouts and it also shows you how to access native apis across mobile desktop and web through interfaces and dependency injection now Blazer is just one of the options that's available with donet Maui and Blazer hybrid support but if you're not using Blazer there's more support built in to donet Maui as well now like I said there is Blazer but there is also the ability to create hybrid applications with any JavaScript frontend this means you can reuse angular react view or more inside of Don Maui applications with the brand new control called the hybrid web View and I have a actual full video here on my Channel going through both of these options for you just like the Blazer hybrid web view enables you to bring in Blazer user interface with Raaz razor components the hybrid web view enables you to embed that HTML JavaScript and CSS and communicate back and forth between JavaScript and c and of course you can mix a match a little bit or a lot so you can really have full hybrid architecture so this enables you to do all sorts of things such as bring in that Blazer web view that hybrid web view as much or as little as you want to develop these applications across iOS Android Mac and windows and share all of that with the web all right well let's talk a little bit about what's new in donet 9 for D Maui developers now there is tons built in that I'm not going to actually cover I'd highly recommend you go check out the session from donet comp talking about it but I do want to highlight a few things obviously with every single release of net you get sweeping performance improvements across the board just by upgrading your version ofet and net Maui Builds on top of those amazing performance improvements and have additional optimizations foret Maui Development Across iOS Android Mac and windows the team has done deep Integrations with native aot to make your application smaller and faster and faster startup time additionally they've of course added the latest support for the latest versions of Android and iOS and they've added new controls such as the new title bar control which is one of my favorite new controls that's built in that it really enables you to have great title bar experience on desktop and leverage it on mobile too and they've also done some things that developers have been asking for like Android asset packs they've added some new input keyboard controls some new life cycle events and they've really optimized the collection View and caneros cell view across the board now on top of that they've done some unique things when it comes to the native platform integration specifically xcode sync with the CLI and Native Library interop first is the xcode sync CLI sometimes you have to get into xcode to edit different assets and storyboards for iOS and Mac specific development and they've created a command line interface and integrated it into Visual Studio code to easily synchronize between both xcode and your D Mai projects and that's really neat to actually see those worlds come together now sometimes just like you need to access iOS and Mac assets and storyboards sometimes you need to bring in Native libraries into your Dynam application that aren't written in c.net and that is where Native Library interop comes in enabling you to go off and create an interop layer between net and objectiv C Swift cotlin and Java libraries and projects you get access to the native projects and Define a custom native API that you then bind to a net API that creates a library that can be brought directly into your donet Maui application this means if there's a custom control or custom library that does some really cool functionality you can easily bring it into your donet Maui application and this is all supported in the donet Maui Community toolkit which I'll talk a little bit about more when I get to community and ecosystem all right so now we know what that Mai is how you develop applications and the question is where do you develop your applications and specifically on what platforms can you develop applications on so let's talk about IDE or integrated development environments and code editors that you can use use for D Maui development first and foremost inside a visual studio code is the doet Maui extension that leverages the C devkit this is fully available across Windows Mac and Linux as well to develop doni applications so you install net you install the DL workload and then you install VSS code and the vs code extend for D Maui this will give you intellisense tool tips insertions color swatches hot reload and that xcode sync support if you're on Mac now I mentioned vs code is available on Windows Mac and Linux but it doesn't necessarily mean that you can develop for every single platform that D Maui supports based on the operating system that you're running so if you're on Windows you'll specifically build Windows and Android applications and that is because Android sdks and emulators are available on Windows alongside Windows SDK and of course running Windows applications on your machine if you're over on a Mac machine you can then use Visual Studio code to develop for iOS Android and Mac applications and that is because xcode is available on side of your Mac enabling you to develop iOS and Mac applications and the Android SDK as well if you're on Linux you'll be able to build for Android there because the Android sdks are available so based on your setup and your experience that is the platforms and the operating systems that you can build for with Visual Studio code and the D Maui extension there's also a great thriving ecosystem of additional Visual Studio code extensions for D Maui developers you'll definitely want to check out I'll put a link to one of the videos that I recently did now by myself am tried sure and I love windows for my main development environment and I also love visual studio and visual studio 20202 has full support for donet Maui development now this is on Windows and visual studio itself is on Windows and of course there's free community editions available for visual studio and the C devkit so you have access to build all of this now since you're on Windows you obviously can build Windows applications you can also build Android applications but in addition to that if you have an iOS device and an iOS Developer profile with apple you can also use your iOS device plugged into your Windows machine to debug and deploy development packages of your iOS applications so that means with Visual Studio on Windows you can develop Windows Android and iOS applications now of course for Mac you got to go over to Mac to run and debug those applications now the awesome part about Visual Studio is that it gives you everything all in one so not only will it install all of.net it'll give you templates gives you access to obviously GI up co-pilot but it also installs all of the additional Android sdks emulators Windows sdks everything that you need to do all inone beautiful package for you automatically now the latest version of when I'm recording this video is visual studio version 17.12 which added new sample templates which are awesome and use all of the brand new syn Fusion controls that are completely free has great improvements for get up co-pilot and awesome new hot reload improvements now there's also upcoming versions as the team is always iterating in 17.13 is this awesome ability to actually use this live preview mode without even debugging your application you just have your application running on your machine you can hot reload and see live updates without even running your application so that's is really awesome to see and the great part is that you'll consistently get new features for Don Maui as you upgrade not only Visual Studio code but also Visual Studio 2022 I also have vide here if you are on a Mac of how to actually run Windows and visual studio 2022 using different emulation and virtualization software like VMware Fusion Pro so I'll put links to that in the show notes as well now Beyond code editors and IDs from Microsoft there's also additional of course full support for donet CLI and also jetbrains Rider and jetbrain Rider is also an ID that is available across Mac windows and Linux to do development so whether you're using visual studio VSS code or doing just donet CLI or Jeff rins Rider there are idees and code editors available for you all right let's get in to the thriving community and ecosystem around donet Maui okay let's first start with a repo that I talked about before which is awesome donet Maui by Javier Ruez now Javier is an engineer on the N Maui team and this list has been ongoing for several years he's reorganized it recently and breaks it down into books samples Workshop Tools talk about Blazer hybrid UI and plugins too so this is great so you can easily get access to different books that you might want to pick up off the bookshelf or on Amazon also different samples that are available so full applications you can just one click go and then I love also the full workshops too that you can dive into he talks about the different tools not only just what's available inside of visual studio and vs code but other great extensions like the meteor extension app accelerator and Maui designer too I love here talking about all the great Blazer controls and of course UI components and there are so many UI components that you can go into and he highlights a bunch of amazing ones here so whether you're looking for charts graphs carousels or so much more more there are great things built into here and I use tons of these as well there's are so many that are thriving in the donet Maui ecosystem so check those out another section that he highlights are these plugins so this is access to Native capabilities similar to the crossplatform apis built in Adon Maui he goes through different ones like barcode scanning and Camera controls and different um popups and inapp billing that's one by me which is kind of cool different binding projects and a whole lot more that you get access to so this just an amazing resource to go through I absolutely love it if there's something in here for absolutely everyone you just keep scrolling another great repo is by Gerald love Gerald he is pumping out amazing videos here on YouTube also an engineer on the D Maui team I love this repo built with Don Maui this actually shows you a bunch of different applications that are publicly available built with donet Maui and it's open source so you can add your application to it as well and where you have it deployed so it's really great to see this ever growing list so definitely check that out another one is from Javier as well which is down at Maui showcase and this is another curated list of sample applications some of in that other list but it's cool because I love seeing the different photos that are in here and different screenshots that you can take a look at of different applications that are reference applications so just kind of samples that you can just go and download and get access to right away so if you want to get like sort of a reference app off the ground running definitely check that out it's really cool to see now beyond that I also mentioned the Don Maui Community toolkit and this thing is absolutely fantastic this thing is fully open source built with support from team members here at Microsoft and the down Community there's all sorts of cool stuff such as alerts such as toast and snack bars animation libraries behaviors that are built in converters there is so many built in Essentials like app Theme resources Badges and file Savers and speech to text different extensions for color animations image source overrides like gravitar images do layouts like dock layout and state containers and platform specific items as well like navigation bars and then views there's an avatar view drawing view this is amazing I showed you how to create a signature control and what's great is that you can see how to do it in saml or in C for every single one and how easy it is Media elements pop ups and one of the favorite libraries here is the C markup this enables you to more easily write user interfaces in C so definitely check that out there's so many good things in here to love it also includes that native Library inout 2 this gives you that full overview that I talked about how to create those binding projects all right beyond that there is the C markup that I talked about and also want to point out just like there's a D in Maui Community toolkit there is theet community toolkit I've referenced this in almost all my videos because I absolutely love the mvvm toolkit that's built in that highly simplifies your entire mvvm project with observable objects validators ioc controls relay commands Asing controls Source generators and so much more it is absolutely fantastic and the messaging system is fantastic easily enable you to do messages to subscribe to back and forth and I also talked about that in videos here too now beyond that I also want to highlight sync Fusion's open source donet Maui controls this was introduced with net 9 and it's actually part of file new project as a sample app there are tons of Open Source controls that you can add in and the team here highlighted all of these free open source controls that you can easily add in with the sync Fusion toolkit such as carousels tab views chips effects like these little shimmers which are really fantastic pull to refresh text input layouts which are absolutely fantastic customized navigation drawer and so much more and they've been adding more and more as well like I said it's completely open source you can see it here right on GitHub and you can check out all of the active development going on it's really really awesome to see how easy it is to add controls into your app beyond that some other cool custom controls have you as the this template Maui which are templated controls that easily enable to extend templates to really customize it he's been really building this out so definitely take a look at this for some really awesome custom controls that you can really customize in your applications now beyond that I just want to give a call out for Gerald because Gerald is awesome there are so many awesome different projects that he has not only that build with Maui but it's audio plugin calendar sort screen recorder pedometer uh UI testing templates and so much more built into this uh which is just really fantastic to see so just definitely just follow Gerald everywhere basically now beyond that there are a bunch of paid controls and also some free controls too out there you can get from control vendors Beyond The Amazing donet Community C Fusion has their free version but they also have paid version of their donet Maui controls and of course you know Blazer controls and angler and View and all these different things as well so if you scroll down you'll see that there's actually amazing controls from data grids charts schedulers Excel libraries and so much more built in so while yes a bunch of things are out there in the free uh toolkit if you get their entire control kit you get everything including an AI assistant view which is Super Rad to see easily enable you to get card views and text an interview and a chat interface our good friends over at Tor progress of course have amazing Maui controls for desktop and mobile you can browse all of them as well again data grids date Pickers tab views and so much more there are just so many amazing views in here too you can get access to have a PDF processor zip Library grid splitter to controls there's something for everyone don't forget G over here with the gril kit is world class for Don Maui and of course Zam inform forms with a world toolkits they have Grail studio and so much more I absolutely love these controls you can easily drop in full page into your application they're highly customizable it is absolutely brilliant over at Messias I think that's how you say it or AKA grape City they have full data grids and full trials and amazing things you can get access to if you really need to customize your data grids as well so have full control access there which is super great to see over at stea they also have a full ma chart control so if you need highly customizable chart controls you can get access to them over at Dev Express you have free multiplatform controls that obviously work not only for Don Maui but also some Blazer hybrid controls too so you can get access to all of those which is really awesome finally I want to point out exceed as well their toolkit for Don and Maui is open source you can get access to and you're consistently updating them with new controls all the time so definitely check those out let's get into some learning resources Gerald has some amazing repos out there and one of his is the learn donet Maui repo it's filled full of learning resources from blogs books code Services social media videos and more so no matter how you're looking to learn you can click find what's out there on social media follow GitHub Twitter accounts discords and more you can dive into example to code and you can browse through all the different components and UI libraries as well so while Javier also has some of this it's great to have multiple resour out there available and I love of course the Deep dive into videos and different YouTubers and twitch accounts to follow now of course there's the donet video beginner series to learn just about anything with net so if you're just getting started with C or net or Visual Studio you are good to go there if you scroll down a little bit in the page you're going to seeet Maui for beginners and Blazer hybrid for beginners from me with my long hair this is really great no matter how you want to start your journey and their full courses on getting up and running so definitely check those out on the donet YouTube I also want to point out the donet Maui Workshop this is something that continues to evolve over time and you can go and take this entire full day workshop that's consistently updated and updated for D9 to learn about displaying data mvvm navigation accessing platform customizing Collections and app themes you can see this in English and in Chinese and you can dive through the entire workshop and if you want you can of course check out my video which is a full 4-Hour beginner course here has over 800,000 views and there are some changes just a few tweaks here that I pinned but all in all it is pretty much the same going through that entire open- Source repo 2 which is fantastic to see now if you're starting Blazer hybrid development additionally Gerald and Saki and I think Maddie also put together this Blazer hybrid Workshop which is a sort of symmetry and sort of a nice complement to the donet Maui workshop and it has the same Parts explain data adding some dialogues navigation theming and more and this is really really fantastic if you want to do Blazer hybrid and you guessed it yes Gerald over here has us covered on all things in this Workshop so if you want to get a handson doing crossplatform applications with blazer hybrid check the full Workshop out there too now finally if you want more guided learning Microsoft learn is there for you with the Microsoft learn training which is completely for free you can go in to select down UI and there's all these modules but I like to actually just click on learning path that's where you're going to see this learning path for building mobile and desktop apps with d and Maui this is going to bring you through creating your first multiplatform app all the way up to creating UI customizing layouts doing data binding mvvm multi-page zamble consistency rest services and databases you can take these all completely for free Earn your badges and they've all been recently updated to net9 all right well there you have it that is my full getting started beginners guide for D Maui development in 2025 I love the D Community I love hearing from all of you so if you enjoyed this and you're interested in getting started let me know how it's going in your journey in the comments below and let me know if you have any other questions and I'll try to answer them also let me know what other videos you want to see here too and I'll try to dive through those on the channel as the year progresses now if you have any questions leave them below and of course if you like this video give it a like give it a subscribe to the channel so you get updated every single time I put out a new video hope you really enjoyed this and I hope that you're starting your journey and new year off with some awesome multiplatform development in C for iOS Android Windows if you've already started to build some stuff let me know I'd love to hear from you and make sure you go send those pull requests to those awesome repost and get your amazing projects and your amazing apps highlighted all right that's going to do it for this guide for 2025 hope you have an amazing year and I can't wait to see what you build this year and Beyond I'm James thanks for watching and I'll see you next time [Music] a [Music]