Xamarin cross-platform visual studio bottom navigation - xamarin

I just started using xamarin in visual studio for building cross-platform apps, and i was searching on the internet for some tutorial etc, and i ran into a website "material.io" and i found this amazing bottom navigation
So i searched on google for a tutorial to make that bottom navigation in xamarin.forms cross-platform environment.
But i didn,'t find anything, so i hoped that someone here at stackoverflow knew how to or could provide me with code or a tutorial.
thanks in advance

As Jason already mentioned, something like this requires a custom renderer. However, you're lucky since someone has already done the hard work for you.
There's a Xamarin.Android control called BottomNavigationBar which has been ported to Xamarin.Forms in the project BottomNavigationBarXF. You'll also find an example of how to get started on the latter repository. On iOS, the control defaults to the standard page with tabs on the bottom.

Related

Configure platform page with platform specific options

We've begun evaluating Xamarin for a up and coming project involving both iOS and Android, with the overriding intention to produce a single UI layer (and some share code, obviously) (I'm also new to C#)
TL;DR
I've begun exploring Xamarin on iOS. I started with the Phoneword example and it worked well enough.
The first issue I found was running the code on the iPhone X, which I was able to solve by using MainPage.On<Xamarin.Forms.PlatformConfiguration.iOS>().SetUseSafeArea(true); in the platform App class
While testing this, I noticed some issues with the ListView not scrolling properly (the core issue was actually with the platform padding).
I then used (MainPage as Xamarin.Forms.NavigationPage).On<iOS>().EnableTranslucentNavigationBar(); to enable translucent navigation bars (as we're targeting iOS 11+) and now everything appears under the navigation bar.
This is easily fixed in xCode and after some research I've found that I need to be using UIKit.UIViewController.EdgesForExtendedLayout Property, the immediate problem I'm facing is, the only "snippets" of code I can find are from the View is displayed under status bar in iOS 7 and EdgesForExtendedLayout doesn't help forum post.
Issue at hand...
The example solution snippets posted seem to be making use of a platform (iOS) specific solution. The problem is, I want to keep using the "cross-platform" code in the "platform" project and simply provide some custom configuration for the iOS platform which can apply these states.
I understand it could be possible to use a renderer, but this seems to counter-interactive, as I'd need one for both iOS and Android, where the platform page is doing just fine as it.
I understand that I could setup a DependencyService, but this seems annoying to have to include a specific "configuration" service just to solve this issue for iOS
I was hoping it might be possible to setup a iOS Page which would "override" some of the functionality of the platform page and would allow me to make use of things like viewDidLoad so I can apply the iOS specific configurations on a page by pages bases, so we could keep the platform page as it, but when running under iOS, it would provide me access to iOS life cycle of the actual view...
I've been trying to search the documentation and tutorials and haven't yet come across anything which would seem to do this or something similar (not to say there isn't one, but I'm just not finding it).

Can you create the UI in Xamarin Android / iOS and the code in Xamarin.Forms?

I'm new to Xamarin development and feel a little bit strange about how to design the UI interface in Xamarin.Forms (portable/shared).
If I just design the Xamarin Android or the Xamarin iOS, I can get the GUI with drag and drop to finish my UI (like in Windows Forms application) and the code for the UI is automatically generated. But in Xamarin.Forms, this one is not supported (we must use code or xaml). I understand that if we use Xamarin.Forms, the same code apply for both Android or iOS.
However it's a long approach to create the UI. Is it possible in Xamarin to create the UI in Xamarin Android / iOS project and then only do the functionality code in Xamarin.Forms (portable or shared)?
I know this is a common question but it can help many new developers either to choose using Xamarin or not...
There is the Xamarin.Forms XAML Preview for when you are coding in XAML:
But in the end, yes, you are coding events, and data converters, etc... and even with tools like the Interface Builder for iOS, you still have to do all the coding to tie the UI together.
On a personal note: Almost ALL the groups that I have worked with do not use the GUI design tools for any apps that are larger then a screen or two. On iOS we avoid .xib & .storyboard like they are the cause of the black plague.
I understood perfectly your situation. A good start is a Xamarin book that you can download for free for this page https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/
If you have been developed with WPF, in Xamarin you have the same concept. A good start is trying example in working apps to understand the structure and the app lifecycle. You can find a collection of examples and code at this link. You can create a form or with XAML or in the code. There are two ways. I advice you to start with XAML and C#.
I advice you to use Portable project and in this way you can share that not just across Xamarin project but with other kind of projects (such as a ASP.NET project).
You can think design Xamarin Forms UI like design Website.
Design website
You knowledge HTML
You need web browser to review
Design Xamarin Forms.
You knowledge XAML
You need Xamarin Previewer to review (Gorilla player, xamarin live player, LiveXaml)
Xamarin.Forms is great, for better understanding of XAML I encourage you to take the time and watch this video (https://evolve.xamarin.com/session/56e201d2bad314273ca4d813) where Charles Petzold goes into detail of how XAML works.
Before Xamarin Studio o Visual Studio had a XAML previewer for Xamarin.Forms I used GorillaPlayer (http://gorillaplayer.com/) is free and works well.
Also take a look in the Xamarin University and Examples.
James Montemagno is a name you must research when talking about Xamarin, he did some really cool and helpfull Xamarin Nuget Packages.
Hope I had pointed you in the right direction.
I understand that you are new to Xamarin.Forms. What I did when I was new to the framework was following a few courses on https://www.xamarin.com/university it is free for 30 days if I'm right (that must be enough to understand the basics). About the previewers I don't have good expierence with them. They are often slow or not working. For me it was often faster to just debug on the phone. Hopefully this will help you a bit.
Even if a nice designor was available, I would still argue that coding by hand is much more efficient : no bad code generated (exemple with constraint : no padding /margin set at the wrong place. No hardcoded size when it's not required etc).
You will have a better understanding and the learning curve is fast.
Back in the days, I started XAML with Silverlight with the amazing Microsoft UI designor : Blend. After few months, I ended up with an architecture that broke the designor (because of dependencies injected in constructor or because the designor struggled to discover controls in external assemblies). It was really painful and I lost a lot of productivity. Few months later, I was fluent with XAML and was even more productive than with a designor.
Nowadays, Visual Studio is snippet friendly for XAML control. I've created a few of them (like a grid with several column row auto, a snippet to generate the ContentPage.Resource with a style, etc).
It's a pain that is worth it.
Moreover you will learn a lot a things and will be more confident in your skills.
Give it a try for few months : you won't regret it !
Last but not least, as other suggest, when building a big app, even in iOS, most developpers I know don't use designor but code everything by hand because of snippet, helpers, extension methods etc.

Firefox SDK Add-on - How to start

I've already develop a little Firefox Extension using XUL and i would like to re-write it better using the new Firefox Add-On SDK.
Looking on web (and in Mozilla Dev Center) i havent found a guide/tutorial that explain from a starting point to the end. All guides describe some component in a standalone way, there are not full examples from the First line of code, to the end.
Adding on this, each "tutorial" in Mozilla Dev Center have some warning that say "this tutorial is deprecated" and so on.
So, there is a clean starting point to lear Firefox Add-On using SDK ?
For toolbars specifically, there is a toolbar API example provided with the Addon SDK source on github.

Silverlight 5: 3D with XNA on Macintosh

I have acutaly access to an closed beta of an online application developed with silverlight 5. Within there's a feature, showing some 3D scenes. There have been used XNA for the 3D. From a windows-pc all work fine. But when I test it from an Mac with OSX the Silverlight-App works fine, too. But not the 3D feature. In upper left corner there's a information showing: "Render Mode: Unavailable" and "Reason: "Not3DCapable".
So I pushed this example to my IIS. This time from Windows all is fine but when trying to access from OSX (Firefox) it starts to load Silverlight but after showing 100% nothing happens. The scene is not shown.
Does anyone has any clue, what to do to support mac?
Unfortunately I found some other websites like this Blog (see the 3. FAQ) and this Blog (see comments) whose say the same: 3D doesn't work on mac.
Sadly Microsoft seems to keep this fact officially secret. Found this Page where I had expected to read something like "3D not supported". Isn't this sad? I thought Silverlight should be platform independent? I hope they will change their mind and add a support for OpenGL or something like that.

Source for a LoopingSelector for WP7

I have been looking at nice, 3 part series about LoopingSelectors by Win phone Geek and unfortunately there is a missing source link for the first part on that website.
Can someone offer to please mail it to me or paste it in here, because I don't want to reinvent it? I would apppreciate it. Thanks.
Code for other demos for LoopingSelectors would be fine too.
The LongListSelector is part of the Silverlight for Windows Phone Toolkit. You can download the Source & Samples for the November 2010 release, or download the latest version, which includes fixes for various controls to enable applications to pass certification (there were issues with Back key press handling).

Resources