top | item 26091666

(no title)

triztian | 5 years ago

As an iOS engineer with native and flutter experience, not needing access to hardware and OS specific APIs is a BIG assumption, I used to not need access until I needed them and it was somewhat painful most of the time, either support was not there how we needed it or some APIs were awkward to use.

I'd also say that the write once support on all devices is definitely not a 100% thing. There is definitely a lot of tweaking for adding support to specific platforms and devices (think iPad vs iPhone vs Android Phone vs Android Tablet). I've also found it that its a lot easier (when compared to native development) to create code that needs to be heavily refactored out when adding support for additional devices while also making sure to not braking things on other platforms. This last point complicates development because then you are forced to be familiar on how to test and debug on each platform, making sure that changes or issues fixed on a specific one don't break the other ones; this for sure adds a ton of development and testing time, specially when you go beyond just android phones and iPhones.

Where flutter has shined for us though has been for internal tools that we deploy and for which the UI is not designer-driven or that don't have stringent design and performance requirements.

Now don't get me wrong; I'm well invested in flutter but it does not come without its compromises, specially on iOS being second in line support after Android. It definitely gets you quicker to market with an MVP on more platforms compared to pure native development.

discuss

order

gman83|5 years ago

The idea is that over time as the ecosystem matures, you will need less and less need for platform channels because there will be more plugins available on pub.dev. Personally I think the Flutter team is taking too much on their plate porting it to Linux/Mac/Windows/Web at the same time. I would rather see them make the iOS and Android implementations rock solid and create great plugins for hardware & OS specific APIs.