{"id":5330,"date":"2013-06-20T14:45:22","date_gmt":"2013-06-20T18:45:22","guid":{"rendered":"http:\/\/blog.xamarin.com\/?p=5330"},"modified":"2013-06-20T14:45:22","modified_gmt":"2013-06-20T18:45:22","slug":"creating-imperative-uis-in-c","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/xamarin\/creating-imperative-uis-in-c\/","title":{"rendered":"Creating Imperative UIs in C#"},"content":{"rendered":"<p dir=\"ltr\">In this article, I&#8217;m going to discuss why you might want to develop iOS apps purely in C#. I call this going Xib-less, and I hope you can see the interesting benefits it offers you in your development process.<\/p>\n<p>There are plenty of reasons why you might want to try going Xib-less. Firstly, if you love using Visual Studio, going Xib-less will enable you to do all of your iOS development on Windows, without ever needing to use Apple\u2019s interface builder. Creating your user interface in C# using Visual Studio means you have access to a huge number of extensions such as ReSharper, which I know lots of C# developers love to use.\u00a0Another advantage of writing your UI in C# is that it grants you control over many properties and behaviours of layouts are not exposed in Xcode\u2019s interface designer which give you greater control over your UI.<a href=\"\/wp-content\/uploads\/sites\/44\/2019\/04\/xibless.jpg\"><img decoding=\"async\" class=\"aligncenter  wp-image-5970\" alt=\"xibless\" src=\"\/wp-content\/uploads\/sites\/44\/2019\/04\/xibless.jpg\" width=\"800\" height=\"337\" \/><\/a><\/p>\n<p>Removing Xibs from your project also makes revision control a breeze. Merging Xib&#8217;s can be a painful process, but when your project is Xib-less you can avoid this hassle altogether as you are dealing with pure C#. One more advantage to using C# to build your UI is it makes porting your App to other platforms such as Android or Windows Phone a breeze if you use frameworks\u00a0such as\u00a0<a href=\"https:\/\/github.com\/slodge\/MvvmCross\">MvvmCross<\/a>.<\/p>\n<p>Using C# for UI creation is an extremely powerful way to develop your App and to help convince you of its benefits, I have assembled a list of Xib-less recipes created by our fantastic documentation team for you to try out. \u00a0We&#8217;ve got recipes for lots of different tasks, so choose your area of interest and start exploring.<\/p>\n<h3>Images<\/h3>\n<ul>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Media\/Images\/Access_Image_Metadata\">Access Image Metadata<\/a><\/li>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Standard_Controls\/Image_View\/Animate_an_ImageView\">Animate an ImageView<\/a><\/li>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Standard_Controls\/Image_View\/Load_an_Image\">Load an Image<\/a><\/li>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Media\/CoreImage\/Adjust_Contrast_and_Brightness_of_an_Image\">Adjust contrast and brightness of an image<\/a><\/li>\n<\/ul>\n<h3>Location Services<\/h3>\n<ul>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Content_Controls\/Map_View\/Display_Device_Location\">Display device location<\/a><\/li>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Content_Controls\/Map_View\/Change_Map_Modes\">Change map modes<\/a><\/li>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Content_Controls\/Map_View\/Add_an_Annotation_to_a_Map\">Add an annotation to a map<\/a><\/li>\n<\/ul>\n<h3>User Interface<\/h3>\n<ul>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Content_Controls\/Navigation_Controller\/Make_the_Nav_Bar_Disappear\">Make the navigation bar disappear<\/a><\/li>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Content_Controls\/Tables\/Handle_a_Row_Click\">Handle a row click<\/a><\/li>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Content_Controls\/Scroll_View\/Create_a_Horizontal_Scrolling_Button_List\">Create a horizontal scrolling button list<\/a><\/li>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Content_Controls\/Tables\/Create_a_Login_Window_Using_MonoTouch.Dialog\">Create a Login Window Using MonoTouch.Dialog<\/a><\/li>\n<\/ul>\n<h3>File System<\/h3>\n<ul>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/General\/File_System\/Enumerate_Directories\">Enumerate Directories<\/a><\/li>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Network\/Web_Requests\/Download_a_File\">Download a File<\/a><\/li>\n<li><a href=\"http:\/\/docs.xamarin.com\/iOS\/Recipes\/Content_Controls\/Web_View\/Load_Local_Content\">Load local content<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In this article, I&#8217;m going to discuss why you might want to develop iOS apps purely in C#. I call this going Xib-less, and I hope you can see the interesting benefits it offers you in your development process. There are plenty of reasons why you might want to try going Xib-less. Firstly, if you [&hellip;]<\/p>\n","protected":false},"author":1929,"featured_media":39167,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2],"tags":[4],"class_list":["post-5330","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developers","tag-xamarin-platform"],"acf":[],"blog_post_summary":"<p>In this article, I&#8217;m going to discuss why you might want to develop iOS apps purely in C#. I call this going Xib-less, and I hope you can see the interesting benefits it offers you in your development process. There are plenty of reasons why you might want to try going Xib-less. Firstly, if you [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/5330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/users\/1929"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/comments?post=5330"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/5330\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media\/39167"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media?parent=5330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/categories?post=5330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/tags?post=5330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}