Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

[WWDC] Apple SwiftUI / Combine

Pagina: 1
Acties:

Acties:
  • +3Henk 'm!

  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 26-01 14:32
Apple heeft 3 juni een compleet nieuwe applicatie architectuur geïntroduceerd die vanaf de in september officieel verkrijgbare nieuwe OS versies op alle platforms zullen werken: macOS, iPadOS, iOS, tvOS en watchOS.

Deze gaat de oudere op UIResponder, UIViewController en Storyboards gebaseerde VC laag uit MVC vervangen. SwiftUI is een met declaratieve manier om UI's te beschrijven die zowel vanuit code als vanuit Interface Builder opgebouwd kan worden, waarbij alle wijzigingen direct zichtbaar zijn, blijkbaar zelfs als de applicatie draait (hot code reload).

In combinatie met Combine is het nu erg makkelijk geworden om UI's aan data te koppelen op een Reactive manier. Dit lijkt erg sterk op de manier waarop je applicaties bouwt in Flutter en React Native, maar dan met Swift.

Je kunt onder Mojave Xcode 11 installeren, maar dan zie je de UI niet live in beeld. Dat werkt alleen als je ook de laatste macOS beta installeert.

Documentatie:

Combine
SwiftUI

Videos:

Keynote, skip naar 2:06:36 voor SwiftUI
Platforms State of the Union

Ik heb de nieuwe Xcode beta inmiddels geïnstalleerd en ik heb wat dingetjes geprobeerd met de nieuwe API's en ik ben erg onder de indruk. Ik ga nu Platforms State of the Union checken die net online is gekomen.

Wat zijn jullie ervaringen zo ver? Ik ben benieuwd hoe makkelijk het blijft als je complexere databindings en layouts gaat doen, tot zo ver waren het UIStackViews die sowieso redelijk makkelijk zijn onder UIKit.

Verder nog interessante API's of updates die ik ben tegen gekomen:
https://developer.apple.com/documentation/backgroundtasks

RobIII wijzigde deze reactie 04-06-2019 18:31 (0%)
Reden: Timestamp toegevoegd

Remote iOS / Microsoft freelancer


Acties:
  • 0Henk 'm!

  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 26-01 14:32
macOS is echt heel slecht qua documentatie. Kon de meest simpele dingen niet vinden zoals een button click afvangen in interface builder.

Helemaal niet slecht als dat vervangen wordt. Wat ik alleen niet weet is of het nou de oude UIKit en SwiftUI worden of alleen SwiftUI voor macOS

Remote iOS / Microsoft freelancer


Acties:
  • +1Henk 'm!

  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 26-01 14:32
De gedeelde Ui libs. Of het beide iOS UI libs zijn op macOS of alleen SwiftKit




Inderdaad alles lijkt gewoon te werken. Zie Platforms State of the Union vanaf 32:00 ongeveer. Dus we hebben nu ineens drie manieren om macOS UI's te bouwen :D

BikkelZ wijzigde deze reactie 04-06-2019 22:10 (52%)

Remote iOS / Microsoft freelancer


Acties:
  • +1Henk 'm!

  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 26-01 14:32
Ik heb zojuist een SwiftUI View draaiende gekregen in een bestaande applicatie. De documentatie bestaat nog niet maar het gaat als volgt:

let vc = UIHostingController<BenefitsSwiftUIView>(rootView: BenefitsSwiftUIView())

Waarbij de HostingController dus een ViewController bouwt met als rootView een SwiftUI View. Ik heb nog niet gevonden of je losse Views kunt wrappen, andersom kan het wel in een UIViewRepresentable (of een UIViewControllerRepresentable). Die BenefitsSwiftUIView is gewoon de standaard "Hello World" SwiftUI View, geen speciale code daar.

Het leuke is dat alles nu ineens structs zijn, wat er volgens mij op duidt dat het meer configuratie is om UI te bouwen dan dat het echt een instantie is van het object wat in je view tree hangt. Erg benieuwd wanneer er meer details boven tafel komen!

BikkelZ wijzigde deze reactie 05-06-2019 13:02 (6%)

Remote iOS / Microsoft freelancer


  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 26-01 14:32
Ik merk wel dat alle nieuwe compiler magic voor generics zoals `some` lastig te vinden hele generieke compiler errors geeft.

Je moet eigenlijk je UI opknippen in hele simpele stukken desnoods via fileprivate Views, net zoals je per UIView of contentView een losse klasse zou gebruiken bij de oude methode.

Remote iOS / Microsoft freelancer


  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 26-01 14:32
Wat ik nog helemaal gemist had in alle gekte waren property wrappers, oftewel custom attributes. Je kunt gewoon ergens @propertyWrapper aan vast plakken en vervolgens kun je dat met @YourImplementation aanroepen overal in je code. Dat was echt een enorm gemis in Swift!

https://www.avanderlee.com/swift/property-wrappers/

Remote iOS / Microsoft freelancer


Acties:
  • +1Henk 'm!

  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 26-01 14:32
Nog een goede tutorial over nieuwe attributes:
https://mecid.github.io/2...erty-wrappers-in-swiftui/

Dependency injection ingebouwd op language level, dat bevalt me wel. Hoeven we er in ieder geval geen discussies meer over te houden.

Remote iOS / Microsoft freelancer


Acties:
  • 0Henk 'm!

  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 26-01 14:32
Tja als je er maar genoeg code tegenaan gooit kan ieder declaratieve oplossing ook gewoon in dikke lagen boilerplate opgelost worden.

Saai, grote kans op fouten en mag allemaal gecompliceerd worden. De berg code die je mag schrijven om Codable met één afwijkend veldnaampje werkend te krijgen is schrikbarend. Of je annoteert dat ene veld even en je bent klaar.

Remote iOS / Microsoft freelancer

Pagina: 1


Apple iPhone 11 Microsoft Xbox Series X LG OLED C9 Google Pixel 4 CES 2020 Samsung Galaxy S20 4G Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True