Comments (13)
Thanks a lot for all of your input. Although we didn't end up quoting anyone on the episode (sorry about that, we didn't end up having any spare time on the episode), I really appreciate all of your thoughts that you put in here.
The episode is now out: https://www.swiftcommunitypodcast.org/episodes/6.
Thanks again everyone, and hope you enjoy the episode! 😀
from podcast.
This episode has been recorded by the way :)
from podcast.
Great to see this getting a dedicated episode, thank you all for preparing this!
Having worked with React for web and React Native for a couple of years already and even prototyping a UI framework in this style for iOS in Swift, I'm very excited that Apple has responded to the demand for declarative UI. I've shared some of my thoughts on this on Swift Forums previously.
To elaborate, the React ecosystem feels very fragmented when comparing it to SwiftUI/Combine, but this is applicable to the JavaScript ecosystem in general. Overall, I find it reassuring that we'll have 1st-party solutions for common problems like cancellable animations, asynchronous dataflow etc, while with React it's for a developer to make a decision on the supporting stack they use to solve these problems. React is only a small piece in the overall architecture, it provides only a fraction of what we get now with SwiftUI/Combine.
On the other hand, this still won't be enough for me as a consultant to easily transition clients who use React Native towards SwiftUI. Being able to share code between iOS, Android and Web is almost always a top requirement for people who're in the React Native ecosystem already. So overall, it's hard for me to say that SwiftUI will take the mobile development and even a significant part of the UI development on all platforms by storm, due to it being closed-source and confined only to Apple's platforms.
I really appreciate the hard work Apple engineers have put into SwiftUI and Combine during all these years it was in development, but in 2019 I don't think this is enough for a developer ecosystem to thrive. All main competing UI frameworks are open-source and it will be very hard for SwiftUI to make a dent in those if it also doesn't become more open. Otherwise, it's limited by the market share of Apple's hardware, which admittedly hard to imagine will grow again in the foreseeable future, especially with Apple focusing on services and more expensive devices. This feels not quite in line with the original "world domination" goal declared for Swift.
from podcast.
👍 I'm very excited for this episode!
from podcast.
Thank you @JohnSundell! In no way I expected this to be read out, this was more of a suggestion for anyone interested in this as a discussion point. But if this is considered by any chance, I'd paraphrase it this way:
SwiftUI is a great shift in the way we build apps as Swift developers, and it's surely well-architected and it took years of engineering effort for it become what it is now, despite it being unveiled only so recently. But I hope it also becomes modern and open in the way it's designed and the community around it is engaged by Apple. All major competing UI frameworks are open-source, and I can't imagine how SwiftUI can achieve at least a significant fraction of the mindshare those frameworks have without becoming open-source.
from podcast.
Amazing episode!!! Congratulations 🎉
from podcast.
Thanks for your thoughts @MaxDesiatov, and for describing them so thoroughly. Do you mind adding a less verbose version (like 2-3 sentences) that could potentially be read out on the show? It won't be possible to read a 4 paragraph piece I'm afraid 🙂
from podcast.
- Not being available for iOS 12, will make the adoption delayed by at least a year, especially for big Apps/companies.
- Declarative syntax finally made building UI on iOS a charm. All examples so far demonstrates small UIs, so I am curious to learn/see best practices around using SwiftUI for big projects.
- I still struggle to achieve many things with SwiftUI (or struggled earlier), which were very straight doing in UIKit. I guess part of it is paradigm shift but partly lack of documentation.
e.g.
Paging in ScrollView
Animations
Simple things like making a View fill the entire superview
from podcast.
When I saw SwiftUI in WWDC livestream, I immediately though about Kotlin-based Jetpack Compose which is very similar, except it uses functions only, being structs-free and classes-free.
At Google I/O (2019) an ongoing effort to make UI development easier has been unveiled, taking advantage of the Kotlin programming language. Their priority is to make a new UI toolkit for Android, but the way they are building it is very platform agnostic, and already relies on a multiplatform language that compiles and runs well on macOS and iOS, despite that part being only in beta. Once Jetpack Compose is stable enough in terms of API, I think it'll be only a matter of time before it competes with SwiftUI and cross-platform UI frameworks like React or Flutter. It's important to note that Swift and Kotlin have a very similar syntax.
For developers that need or want to support iOS 12 and earlier (and all the devices that will never be updated, in an Android-like fashion), maybe Jetpack Compose will be a great alternative to SwiftUI in the not too distant future.
from podcast.
Another thought:
When I saw SwiftUI + Xcode preview, I was amazed at it. The ability to code the preview with not much code at all, and compare designs in a very straightforward way is really nice!
from podcast.
Looking forward to this one 👀
from podcast.
An approach of declarative UI does make difference in Apple eco system. It became familiar to developers who are worked in following order, Reactive Pattern (Web/Mobile(ReactJS/Redux)) -> Cross Platform (React Native/Flutter) -> Native Apple eco system (SwiftUI/Combine(state management))
from podcast.
Great episode.
Sent with GitHawk
from podcast.
Related Issues (20)
- Topic idea / languages that influenced Swift
- Possible topic for a future episode
- Guest nomination - Erica Sadun HOT 1
- Topic Suggestion HOT 7
- Episodes do not have speed controls HOT 3
- Remove website banner HOT 1
- How to link the episode 1 transcript from the shownotes? HOT 7
- [WIP] [RFC] Episode Suggestion: State of The Community HOT 3
- Provide email address for Code Of Conduct HOT 6
- [RFC] [WIP] 💡 Topic: The pace of community tooling changes when compared to that of Objective-C HOT 5
- Contributing show notes and Squarespace site HOT 3
- 🏥 Help Wanted: Document Episode Proposal Process HOT 3
- I would like to share some music compositions for intro. HOT 1
- 💡 [RFC] Topic: Swift and Machine Learning HOT 2
- 💡 Topic: Reactive Programming in Swift and Combine HOT 11
- 💡 Topic: The State of Swift on The Server HOT 6
- 💡 Topic: Swift for Good HOT 23
- 🎤 Speaker: Saleem Abdulrasool
- Wrong episode information for Episode 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from podcast.