@@ -4,9 +4,66 @@ id: platform-controls
4
4
5
5
# Platform controls
6
6
7
- - Use the platform provided controls
8
- - UI patterns are different accross platforms
9
- - A lot of the code reuse happens in the business logic with fine tuning at the UI level to
10
- have it better integrated with the OS
7
+ ::: note
8
+ Crossplatform technologies work by providing abstractions to the developers. In this section we will
9
+ learn more about those that operate at the platform controls level.
10
+ :::
11
11
12
- <!-- List with technologies filtered by type -->
12
+ All platforms provide a set of controls or components for developers to use so their application
13
+ is more integrated with the look and feel of the platform where they are running. For example, Apple
14
+ provides its [ Human Interface Guidelines] and Android is [ Material Design] .
15
+
16
+ There are some foundational pieces that are "universal": links, buttons, images, labels, etc.
17
+
18
+ <p align =" center " >
19
+
20
+ <!-- Resize these images -->
21
+
22
+ ![ Buttons in Apple's Human Interface Guidelines] ( /img/design-buttons-hig.png )
23
+ ![ Buttons in Android's Material Design] ( /img/design-buttons-material.png )
24
+
25
+ </p >
26
+
27
+ But there are other controls or interactions that are completely different and cannot be translated
28
+ from one platform to another.
29
+
30
+ Technologies in this category focus on make it easy to:
31
+
32
+ - share the business logic code, which should be (mostly) the same accross all platforms
33
+ - write custom UI for a particular platform if needed
34
+
35
+ While this means that you might still have to write custom code per platform, it will be using
36
+ mostly the same technology, and it will also allow you to provide a more integrated experience to
37
+ your users by "fine tuning" the UI to where the application is running.
38
+
39
+ ::: tip
40
+ The percentage of code share accross platforms will depend a lot in your application. In some cases
41
+ it can be really high (over 95%!), in others it might be a bit lower.
42
+
43
+ When evaluating these type of technologies consider how much "tweaks" you want to do per platform to
44
+ have a better idea on how much code you will be capable of reusing.
45
+ :::
46
+
47
+ Contrary to technologies under [ Browser engine] , the architecture of this category can vary vastly
48
+ from one to another. Even for the same technology the implementations could be different accross
49
+ platforms (like [ Xamarin] ). For that reason each technology will have its own internals section to
50
+ explain how they work.
51
+
52
+ ## Technologies
53
+
54
+ The following is a non-exhaustive list of technologies under this category. If you know of more,
55
+ please [ report them in GitHub] [ new-technology ] !
56
+
57
+ | Technology |
58
+ | :------------: |
59
+ | [ React Native] |
60
+ | [ Xamarin] |
61
+
62
+ <!-- Reference links -->
63
+
64
+ [ browser engine ] : browser-engine.md
65
+ [ human interface guidelines ] : https://developer.apple.com/design/human-interface-guidelines/ios/controls/buttons/
66
+ [ material design ] : https://material.io/components?platform=android
67
+ [ new-technology ] : https://github.com/crossplatform-dev/crossplatform.dev/issues/new
68
+ [ react native ] : react-native.md
69
+ [ xamarin ] : xamarin.md
0 commit comments