Xamarin.Forms == Microsoft.LightSwitch

2»

Posts

  • TheGabeChavezTheGabeChavez USMember, University

    Dude, if you don't accept the fundamental relationship between the look and feel of an app and the way users interact with it, that explains a lot.

    Anyway, here's a pretty good definition. I'm adding emphasis to certain concepts for your benefit.

    User experience design (UXD or UED) is the process of enhancing user satisfaction by improving the usability, accessibility, and pleasure provided in the** interaction between the user and the product**. User experience design encompasses traditional human–computer interaction (HCI) design, and extends it by addressing all aspects of a product or service as perceived by users.

    https://en.wikipedia.org/wiki/User_experience_design

  • TheGabeChavezTheGabeChavez USMember, University

    Dude, if you don't accept the fundamental relationship between the look and feel of an app and the way users interact with it, that explains a lot.

    Anyway, here's a pretty good definition. I'm adding emphasis to certain concepts for your benefit.

    User experience design (UXD or UED) is the process of enhancing user satisfaction by improving the usability, accessibility, and pleasure provided in the** interaction between the user and the product**. User experience design encompasses traditional human–computer interaction (HCI) design, and extends it by addressing all aspects of a product or service as perceived by users.

    https://en.wikipedia.org/wiki/User_experience_design

  • GeorgeCookGeorgeCook PEUniversity ✭✭✭

    erm.. wtf happened at the end there? pasting more of the same thing doesn't make it more right..

    are you obsessed with repeaters in real life as well?

    The plot thickens.

  • TheGabeChavezTheGabeChavez USMember, University

    Whoops! No, I tried to post and nothing happened, then I tried again, nothing, then I lost my original post and lazurus didn't have it, so I tried to reconstruct it from memory. Then I gave up. I wrote all of that stuff last night, but somehow it all posted as of this morning :( Very sorry for the spam.

  • adamkempadamkemp USInsider, Developer Group Leader mod
    edited July 2015

    Visual design and UX design are closely related, but UX often refers specifically to the workflow whereas visual design refers to the visual appearance (styling). Some designers wear both hats, but often they are two separate roles. Our company has different people to do each task. A UX designer designs the user interaction, and her output is a wireframe (no visual styling at all, but maybe a few vague ideas). A visual designer takes the wireframes from the UX designer and decides exactly how it will look (color schemes, shapes, branding, image assets, fonts, even spacing in some cases).

    Xamarin.Forms is designed for native UX (meaning native controls and native navigation paradigms), but it can be skinned. That is, a UX designer can limit her choices to controls and navigation paradigms that are natively supported, but a visual designer can take that wireframe and make it look unique and visually appealing. You should not have a problem taking that final design and implementing it in Xamarin.Forms.

    What is harder in Xamarin.Forms is when you do the UX design (the wireframes) without any regard to what is natively supported on the mobile platforms. For instance, radio buttons don't exist on iOS, and so Xamarin.Forms doesn't support them. Therefore if your wireframe calls for radio buttons you're going to have to implement that yourself.

    Likewise, expandable lists (accordions) are not natively supported on iOS or Android. Therefore if your wireframe calls for that control you're going to have to spend some time building that yourself. That's not because Xamarin.Forms is deficient. It's because the wireframe was created without regard to the native platform.

    Again, that's not necessarily wrong. A lot of good apps cast aside the native controls and roll their own in order to provide a compelling user experience. But those apps take extra work. Xamarin.Forms isn't optimized for that kind of app. Styling an app that uses native controls is well supported, but building an app that has a non-native interaction model takes more work.

  • AndrewMobileAndrewMobile USMember ✭✭✭✭

    @AndreiNitescu, thanks for your offer of assistance, but I solved my problem another way. I used custom renderers to implement my desired functionality.

    why would you do custom renderers for that

  • TheGabeChavezTheGabeChavez USMember, University

    @AndreiNitescu I used custom renderers because it allowed me to create the view I wanted using platform design tools and pre-existing native implementations of the control I wanted, (ExpanderView from the Windows Phone Toolkit in the example below, referenced by default in new WinPhone projects).

    I was able to create mock data for my databound controls and get design-time support for styling the list like I wanted - no tedious design cycle of make a change, deploy the app, navigate to the page, comprehend why it looks like shit and how I might fix it, then do it all over again.

    Here's a screenshot of my design-time experience with the windows phone implementation of this view:

    Then I was able to simply swap out the native one for the shell of a Xamarin.Forms control during rendering:

    public class TimecardDetailsListRenderer : ViewRenderer<ListView, ListBox>
      {
        protected override void OnElementChanged(ElementChangedEventArgs<ListView> e)
        {
          base.OnElementChanged(e);
    
          var page = new TimecardListViewUserControl();
    
          var existingListBox = page.TimecardListView;
    
          var listbox = new ListBox
          {
            ItemTemplate = existingListBox.ItemTemplate,
            ItemsSource = Element.ItemsSource
          };
    
          SetNativeControl(listbox);
        }
      }
    

    Here's the custom control stub:

      public class TimecardListView : ListView
      {
      }
    

    And here's how it's used in a Xamarin.Forms page:

    <Grid HorizontalOptions="Fill" VerticalOptions="FillAndExpand">
    
        <Grid.Resources>
          <ResourceDictionary>
    
          </ResourceDictionary>
        </Grid.Resources>
    
        <Grid.RowDefinitions>
          <RowDefinition Height="Auto" />
          <RowDefinition Height="20" />
          <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
    
        <Label x:Key="EeName" Text="{Binding Path=Timecard.EmployeeName, Converter={StaticResource ellipsesStringValueConverter}, ConverterParameter=22}" HorizontalOptions="Center" Style="{StaticResource HeadingLabel}" Font="{StaticResource LargeHeading}" Grid.Row="0" />
        <BoxView HeightRequest="2" HorizontalOptions="Fill" VerticalOptions="Start" BackgroundColor="{StaticResource BlueDark}" Grid.Row="1" />
        <views:TimecardListView HorizontalOptions="Fill" VerticalOptions="FillAndExpand" ItemsSource="{Binding TimecardDays}" Grid.Row="2" />    
    
      </Grid>
    
  • AndrewMobileAndrewMobile USMember ✭✭✭✭

    @TheGabeChavez that's different than what you showed in the screenshot you sent

  • TheGabeChavezTheGabeChavez USMember, University

    @AndreiNitescu if you're talking about that list of lists image I posted earlier, that was just something I found on the internet that illustrated the design pattern I was going for. What I've linked above is a list of lists as well. Here's why:

  • AndrewMobileAndrewMobile USMember ✭✭✭✭

    well, maybe next time show the right picture :)

  • GeorgeCookGeorgeCook PEUniversity ✭✭✭

    btw the latest thing that Adam wrote is correct. I also stick by my original assertion, which is if you want to push the platform forward, to enable it to do things it's not designed for, then be nice and share what you write :)

  • AndrewMobileAndrewMobile USMember ✭✭✭✭
    edited July 2015

    then be nice and share what you write

    hilarious that it's you to say that to someone, after all the things you said in different occasions, either right on forum or in private messages

  • GeorgeCookGeorgeCook PEUniversity ✭✭✭
    edited July 2015

    I've reported that for the abuse that it is. I just wanted to be open about it.

    [Edit] and to be clear to everyone else.. I mean share what you write as in "code, open source, controls", all that good stuff.

    The community, with the exception of some serial trolls, who seem to wantantly misunderstand everything some people write, is really quite pleasant and shares a lot of their work. That's how we avoid being Microsoft.Lightswitch.

  • AndrewMobileAndrewMobile USMember ✭✭✭✭

    You should have reported your own posts as abuse.

Sign In or Register to comment.