20. macOS Preview
Enhanced GestureRecognizers
Android Support Libraries
PlatformSpecifics
Fast Scroll
NavigationPage Translucency
Blur Behind
.netstandard support
Partial Collapse MasterPage
Native Control Binding
Map Extensibility
Fast Renderers Preview
Startup Time
ListView Scrolling
Memory Improvements
XAMLC
Bindable Picker
Frame Corners
Tizen
Forms Previewer
FlexLayout Preview
Xamarin.Forms Embedding
DataPages
21. • Aggressive bug triage
• New issues reviewed within 24 hrs
• Reproduction projects for quick resolution
• Performance Improvements
• Startup Time
• Fast Renderers for Android
• ListView improvements, Fast Scroll
• XAMLC – 5x faster
• Discussion: aka.ms/xfperformance
Quality and Performance
Source: Matthew Robbins - MFractor
22.
23. 2.4.0
• .NET Standard 2.0
• Stability and Performance
• Over 150 fixes
• New Feature Flags API
• Android Fast Renderers: Button, Image, Label
• macOS Preview
37. Has Parent?
InvalidateMeasure Called
Call InvalidateMeasure on
Parent
Queue Delay Layout
Yes
No
1
2
3
4
Wait for event
callback to happen
and trigger the layout
mechanism
5
Has
Children?
LayoutChildren Invoked
Layout called
6
7
8
Yes
No
Layout Cycle Completed
9
Layout Lifecycle:
Layout Loop
41. Pros:
less renderers to create, manage and dispose
less UI elements on screen
Cons:
compressed layouts can't have BG colors, gesture recognizers
no transformation
42.
43.
44.
45.
46.
47.
48. FlexLayout Example
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x=http://schemas.microsoft.com/winfx/2009/xaml
x:Class="FormsFlexLayoutDemo.FlexDemoPage">
<FlexLayout x:Name="flexbox”>
<Label Text="Flex Element 1" />
<Label Text="Flex Element 2" />
<Label Text="Flex Element 3" />
<Label Text="Flex Element 4" />
<Label Text="Flex Element 5" />
</FlexLayout>
</ContentPage>
Flex Element 1 Flex Element 2 Flex Element 3
Flex Element 4 Flex Element 5
Multiple Teams
Multiple Code Bases
Expensive & Slow
Positive = Great apps delivered to user’s platform
Negative = Development hampered by multiple code bases & fragmentation
Inside of a page are layouts
A lot of options from something simple like a stack panel to complex and powerful grids
You have more than 40 controls, layouts, and pages to mix and match from.
These are all of the controls you have out of the box, you can of course create your own.
What is unique is you get the native control and have access to it.
Consider an Entry Field
On iOS it is mapped to UITextField
Android it is EditText
Windows Phoen it is a TextBox
Screenshots of app UI tested. Maybe graph the improvement.
Kick off File > New with Live Player running
What do we want to cover about building an app?
Listview - get rid xamarin of viewcells.. Add insert methods…
Kick off File > New with Live Player running
What do we want to cover about building an app?
Possible embedding in Android or native Obj-C appsNavigate a Native levelNew Possibilities .. Just bring what you need to iOS or Android
Been working on layout compression for a while
Initial testing is showing very positive results
Will be a slow burn to get it fully implemented
2 key parts of the layout lifecycle to know about
First is invalidation loop
Kicked off whenever a child calls invalidate measure
The child will then begin chaining the call up to its parents, over and over
This chart is of course an over-simplification and there are optimizations that can prevent this chaining from happening.
Second is the layout loop
Occurs some undefined time AFTER the invalidation loop, may be immediate, not required to be
Layout is called on a View
View then calls Layout on all children, who then recurse into this
Completes when all Layout cycles are finished
They are duplicate..
Pros:
less renderers to create, manage and dispose
less UI elements on screen
Cons:
compressed layouts can't have BG colors, gesture recognizers
no transformation
...
Kick off File > New with Live Player running
What do we want to cover about building an app?
Gtk# is a Graphical User Interface Toolkit for mono and .Net. The project binds the gtk+ toolkit and
assorted GNOME libraries, enabling fully native graphical Gnome application development using the
Mono and .Net development frameworks
Really beautiful, isn’t it. The talented people over at Samsung have done an incredible job.
Kick off File > New with Live Player running
What do we want to cover about building an app?
Kick off File > New with Live Player running
What do we want to cover about building an app?