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:
  • +2Henk 'm!

  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 16-11 17:00
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:
  • +1Henk 'm!

  • JeroenTheStig
  • Registratie: mei 2000
  • Laatst online: 20:23
Ik heb nog weinig ervaring met het ontwikkelen van apps op het Apple-platform, maar heb al wel wat rondgerommeld met XCode, m.n. met het ontwikkelen van macos-applicaties. Waar ik tegenaan liep is dat er op gebied van macos-development erg weinig informatie te vinden is. De overgrote meerderheid gaat toch over het ontwikkelen van apps op IOS. De weinige trainingen/tutorials die ik op gebied van macos heb gevonden werden gedaan door mensen met nog weinig ervaring, en iedere keer worden dezelfde problemen op verschillende manieren opgelost, bijvoorbeeld het navigeren naar andere pagina's.

Gisteravond heb ik de WWDC gevolgd en ben erg enthousiast over de nieuwe manier van het ontwikkelen van user interfaces. Waar ik op de huidige manier XCode vooral een trukendoos vind waarmee je op de achtergrond een grote xml-file in elkaar configureert, hoop ik met Swift UI op een meer eenvoudige manier user interfaces te kunnen bouwen. De declaratieve wijze van user interfaces schrijven ziet er op het eerste gezicht goed uit en ik hoop op die manier samen met de API documentatie beter mijn weg te kunnen vinden.

Ik heb mij vanmiddag geregistreerd als Apple Developer, momenteel ben ik op een externe SSD macos Catalina aan het installeren, en daarna rustig in de documentatie duiken en beginnen met de tutorials die op de Apple developer site te vinden zijn. Hopelijk kan ik binnenkort ook mijn bijdrage leveren aan dit topic en het zou leuk zijn als we elkaars ervaringen uitwisselen om van elkaar te leren. Momenteel is het namelijk vooral zelf uitzoeken, collega's zijn er helaas (nog) niet mee bezig, aangezien ik in een Java-tent werk.

PSN: Jeroen_the_stig


Acties:
  • 0Henk 'm!

  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 16-11 17:00
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:
  • 0Henk 'm!

  • JeroenTheStig
  • Registratie: mei 2000
  • Laatst online: 20:23
BikkelZ schreef op dinsdag 4 juni 2019 @ 20:33:
macOS is echt heel slecht qua documentatie. Kon de meest simpele dingen niet vinden zoals een button click afvangen in interface builder.
Dan ligt het dus niet aan mij ;) Als je de api documentatie doorleest, dan mis ik eigenlijk voorbeelden hoe je het dan moet toepassen. Ik heb uiteindelijk wel een pagina gevonden met allerlei voorbeeldcode, maar de meeste voorbeelden zijn al dermate verouderd dat je er nog maar weinig aan hebt.

Ik weet ook wel dat beginnen met macos-development i.p.v. ios-development niet helemaal de juiste volgorde is qua opdoen van ervaring in het Apple-platform, maar ik heb een idee in mijn hoofd wat ik uit wil werken wat alleen geschikt is voor macs.

Nu SwiftUI uitgebracht is, hoop ik dat er geen grote kloof meer is tussen hoe je apps ontwikkelt voor ios en voor macos en het daardoor eenvoudiger wordt.
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
Wat bedoel je precies met je laatste zin?

PSN: Jeroen_the_stig


Acties:
  • +1Henk 'm!

  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 16-11 17:00
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: 16-11 17:00
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


Acties:
  • +1Henk 'm!

  • kay0313
  • Registratie: april 2013
  • Laatst online: 21-11 10:50
Als je graag meer wilt weten over het bouwen van MacOs apps dan zou ik aanraden om te overwegen dit boek te kopen: https://www.hackingwithswift.com/store/hacking-with-macos
Daarin wordt vrij goed en duidelijk uitgelegd hoe en wat.

Acties:
  • +1Henk 'm!

  • JJ93
  • Registratie: maart 2013
  • Laatst online: 08-11 15:07

JJ93

Error 418

Ik wil misschien een iPad app porten naar macOS. Iemand hier al mee geëxperimenteerd? En misschien belangrijker, kan je een macOS app distributen met een (iOS) Apple Developer account of is daar een aparte licentie voor nodig? Die 99 euro per jaar ga ik namelijk niet terug verdienen denk ik, maar als ik 't onder mijn developer account kan publiceren dan wil ik er misschien wel wat uurtjes in steken om te porten/optimaliseren voor macOS.

Van idee naar app? abra.nl


Acties:
  • +1Henk 'm!

  • JeroenTheStig
  • Registratie: mei 2000
  • Laatst online: 20:23
JJ93 schreef op donderdag 6 juni 2019 @ 10:39:
Ik wil misschien een iPad app porten naar macOS. Iemand hier al mee geëxperimenteerd? En misschien belangrijker, kan je een macOS app distributen met een (iOS) Apple Developer account of is daar een aparte licentie voor nodig? Die 99 euro per jaar ga ik namelijk niet terug verdienen denk ik, maar als ik 't onder mijn developer account kan publiceren dan wil ik er misschien wel wat uurtjes in steken om te porten/optimaliseren voor macOS.
Voor zover ik weet kan je als je een Apple Developer account (die waar je 99 dollar per jaar voor betaalt) hebt voor alle platformen apps publiceren.

JeroenTheStig wijzigde deze reactie 06-06-2019 15:26 (3%)

PSN: Jeroen_the_stig


Acties:
  • +1Henk 'm!

  • ThomasG
  • Registratie: juni 2006
  • Laatst online: 21:17
JeroenTheStig schreef op donderdag 6 juni 2019 @ 15:19:
[...]

Voor zover ik weet kan je als je een Apple Developer account (die waar je 99 dollar per jaar voor betaalt) hebt voor alle platformen apps publiceren.
Voorheen waren developer voor OS X en iOS separate licenties, en kosten het dus 2 keer 99 euro. Sinds een paar jaar is het inderdaad samengevoegd, beide voor 99.

  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 16-11 17:00
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: 16-11 17:00
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: 16-11 17:00
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!

  • Carbon
  • Registratie: juni 2001
  • Laatst online: 14:07

Carbon

4800Wp + 5400Wp

BikkelZ schreef op dinsdag 4 juni 2019 @ 20:33:
macOS is echt heel slecht qua documentatie.
Documentatie en voorbeelden zijn gewoon online beschikbaar
Google maar eens op "cocoa button action"
Nadeel is wel dat de voorbeelden veelal geschreven zijn in Objective-C

Acties:
  • 0Henk 'm!

  • Carbon
  • Registratie: juni 2001
  • Laatst online: 14:07

Carbon

4800Wp + 5400Wp

BikkelZ schreef op dinsdag 11 juni 2019 @ 14:45:
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!
Enorm gemis? Dat is een beetje overdreven :)

Je kunt dezelfde functionaliteit implementern via get/set
Wel minder elegant plus een veel boilerplate code

Acties:
  • 0Henk 'm!

  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 16-11 17:00
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 Nintendo Switch Lite LG OLED C9 Google Pixel 4 FIFA 20 Samsung Galaxy S10 Sony PlayStation 5 Elektrisch rijden

'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 - 2019 Hosting door True