Note de comparaison pour ceux qui touchent Kotlin (Android) depuis Swift (iOS) 1

Un mémorandum quand les gens qui sont venus avec Swift touchent Kotlin Choisissez des endroits susceptibles de trébucher en raison de différences de concept

Fichiers essentiellement utilisés

** drawable **, ** layout **, ** values ** under res ** kotlin ** sous java (pas de test)

** drawable **: actifs dans iOS, mais peut également enregistrer des paramètres tels que css ** layout **: storyboard sous iOS ** values **: Un endroit où les propriétés dans ios sont enregistrées ensemble dans une structure, etc. Vous pouvez le voir en regardant le code couleur, le texte intégré à l'application, etc. ** kotlin **: contient le fichier viewController dans Activity-ios

Disposition

** StoryBoard ** dans ** Xcode ** ** activity.xml ** dans Android Studio **

ConstraintLayout, LinerLayout, TableLayout en tant que parents (base de mise en page) Je vais remplir les parties et faire une mise en page.

Quand tu veux le placer au milieu

iOS

obj.frame.size.width / 2
obj.center.x(y)
//Centre vertical et horizontal pour les storyboards

Android

app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"

parent est l'élément parent. Contraint le côté droit de l'élément spécifié au côté droit de l'élément parent et le côté gauche au côté gauche. Si ce paramètre est défini sur "@ id / part id", il peut être défini pour l'élément spécifié. En raison de la contrainte ** égale ** à gauche et à droite, les relations de force gauche et droite des pièces sont égales et placées au milieu.

app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginRight="10dp"

Si vous ajoutez la troisième ligne comme, la relation de puissance sera rompue et margin10dp sera sur la droite. Décalez 10dp vers la gauche.

Gestion de la bibliothèque

iOS podfile(cocoapods) Android Gradle Installation (installation du pod sous iOS) Cliquez sur la marque d'éléphant (Sync Project with Cradle Files) dans le menu d'exécution

Transition d'écran

iOS performsegue, navigationController, etc. Android Mouvement d'écran Transition avec ** startActivity ** à l'aide de ** Instent instance ** Revenir finish() Puisque startActivity crée une nouvelle instance d'activité, Fermez (retournez) l'écran avec finish () sauf s'il y a une raison particulière

(Bien sûr, il y en a d'autres, mais pour le moment nous n'avons implémenté que le minimum requis Seulement ceci est introduit)

Choses qui sont sur iOS mais pas sur Android

segment control Puisque Android ne l'a pas, est-ce un remplacement de RadioButton? Besoin de remplacer par un bouton

import Comme il peut être utilisé sur iOS sans importer de parties de l'interface utilisateur, Je crée une instance sans le savoir, Sur Android, je les installerai un par un.

Par exemple, dans le cas de Button, si vous appuyez sur Entrée lorsque la fin apparaît, l'importation sera automatiquement entrée. Sinon, il sera importé avec l'option + Entrée

java-> conversion automatique Kotlin

Si vous êtes habitué au remplacement, je pense que vous pouvez également utiliser Kotlin pour les articles java. Ceux qui ne le font pas peuvent être utiles. Lorsque je colle le code java dans l'éditeur, il me demande si je veux le convertir en Kotlin Pratique car il y a peu d'articles sur Kotlin

Kotlin déteste null

Dans Swift, il est déclaré avec "?", Kotlin ajoute également lateinit

when Passer sous iOS Il n'y a pas de quand dans iOS, alors pourquoi pas! Notez que cela peut être when(int) { 1 -> println("int is 1") 2 -> println("int is 2") } Peut être utilisé comme une instruction Switch

en conclusion

Qu'as-tu pensé? Si vous êtes habitué à Swift dans une certaine mesure, si vous pouvez comprendre la partie de mise en page Je pense que cela peut aller sans heurts dans une certaine mesure. Je suis heureux que vous puissiez l'utiliser comme référence. Si vous trouvez des erreurs, veuillez les signaler et nous les corrigerons immédiatement.

Recommended Posts

Note de comparaison pour ceux qui touchent Kotlin (Android) depuis Swift (iOS) 1
Mémo pour la migration de Java vers Kotlin
[Swift] Une illustration pour ceux qui disent «Le délégué est un agent».
Comparaison de raccourcis pour ceux qui migrent d'Eclipse vers IntelliJ IDEA (Windows)