I wouldn’t say I’ve had horror stories just minor gripes and frustrations. You can mix and match AppKit and UIKit with SwiftUI. So there is always an escape hatch.
SwiftUI is insanely productive when it comes to building mostly simple list and form applications.
I highly recommend that you try it, you can always build a component or large sections using UIKit if you run into issues.
At Ditto almost all of our enterprise customers use SwiftUI over UIKit because SwiftUI is so productive for the vast majority of use cases. Does it have parity with UIKit? No… but it’s never been a dealbreaker for us.
Ditto (www.ditto.live) is deployed on all Alaska Airlines, Lufthansa and many other airlines.
It also powers point of sale and kitchen systems at Chick fil A.
The major thing that Ditto is that it can sync without internet using Bluetooth low energy, peer to peer WiFi and Local Area network. It can even do multi-hop.
Thank you! After feedback from a lot of our customers, they want more access to explicit types so you'll see a lot more APIs to control how you want conflict resolution.
A) PouchDB, Couchbase, Firebase, Realm are all databases that can sync to a "master" node in the cloud.
B) AODV and BATMAN are really an ad-hoc mesh networking and routing protocol.
Ditto is both A and B. You work with Ditto as a database on your mobile, IoT, web app with common database functions (querying, updating, deleting etc...) and we will sync the changes between edge and cloud devices. Most developers cannot sensibly use AODV and BATMAN to build robust collaborative applications, it's too hard. We abstract all of the routing, network resiliency, and replication away from you; just work with the database
No unfortunately not in our core offering. We’d like to stick to what we do best and then leave it up to the community next year to build a graphql implementation.
You hit the nail on the head. We are working on this as a major initiative to solve the problem you detailed. As you can guess the truly decentralized authentication is quite new and we are releasing some features to get us less reliant on online services for connectivity.
That’s correct the browser limits us to do automatic discovery sadly.
WebBLE support is on our roadmap though!
However, if you use Ditto in an electron (and soon Tauri) you’ll be able to take advantage of multicast, BLE, P2P WiFi etc… while “feeling browser”-like with your development.
So happy to see the support from the Hacker News community.
I should mention Ditto is a massively ambitious company, we are doing fantastic with traction across major industries.
Our entire core code base is written in Rust and I know HN goes crazy for Rust. If you’re really interested in working on very hard problems like CRDTs, partial replication, query based replication, peer to peer adhoc sync, mesh network or distributed security: please definitely take a look at our openings.
www.ditto.live/jobs
You’ll work on problems that are incredibly difficult, unique and rewarding that you won’t find anywhere else!
Super cool to see us on HN! The use cases are for projects, products, enterprises to build collaborative apps that can sync with the internet but fall back to local P2P connections when internet connectivity fails. Furthermore we added offline first as an additional guard for some resiliency.
We help solve a class of apps like:
1. Desk-less worker apps for the enterprise: think people who use mobile apps for the vast majority of their work: pilots, flight attendants, construction, maintenance
2. Retail, inventory warehousing, point of sale systems where being able to communicate between kiosks, service tablets, and display systems quickly even if there are interruptions in service
3. Education: it’s very often parents give their kids phones without a data plan, so their school or learning apps need to be able to collaborate with other students or teachers regardless of connectivity
4. Robotics, agriculture technology, IoT - often these applications have hard requirements to communicate with other local devices without any dependency of the internet
SwiftUI is insanely productive when it comes to building mostly simple list and form applications.
I highly recommend that you try it, you can always build a component or large sections using UIKit if you run into issues.
At Ditto almost all of our enterprise customers use SwiftUI over UIKit because SwiftUI is so productive for the vast majority of use cases. Does it have parity with UIKit? No… but it’s never been a dealbreaker for us.