7 ms·
Show HN: InKino – An open-source movie app made with Flutter
- unop 8y agoHmm, the HN title is grossly misleading.. I wonder why?
- dang 8y agoWhat is misleading, and what would be a better title?
- petters 8y agoIt is an app exclusively for "Finnkino" cinemas. Most people would interpret "movie app"to be something broader than that.
- danmaz74 8y agoFrom the project Github page: "inKino - A cross platform movie and showtime browser for Finnkino cinemas, made with Flutter." "inKino - a showtime browser for Finnkino cinemas"
- hdra 8y agoAs someone who has never heard of Finnkino, I think the current title is easier to understand for most people.
- aepiepaey 8y agoMainly "cross platform". Many people would interpret that as [desktop] platforms, e.g. Linux/Windows/Mac OS. Especially if you weren't previously aware of what Flutter is. Adding a "mobile" in there somewhere would be a significant improvement. In addition "movie app" is a bit underspecified. Maybe it's for managing movies? Editing them? Playing them? Especially when both confusions are combined, it can be easy to get the wrong idea of what the submission is.
- pvinis 8y agoYes but "app" is usually what you run on your phone, "application" is what you run on your computer, no?
- aepiepaey 8y agoBack before the popularization of smart phones, it was not that uncommon to use "apps" as an abbreviation for [desktop] applications. Of course, "apps" is usually used to refer to [mobile] applications today, but it's still used in the other sense.
- dang 8y agoOk we can just take "cross platform" out of the title.
- roughike 8y agoThere's only so much I could fit in the title, and I honestly didn't mean to mislead anyone. I can definitely see how it could be a little misleading now that you mentioned it. Sorry about that!
- gkya 8y agoYeah I definitely thought this was sth. about making videos on mobile, but I don't think the title is purposefully trying to mislead anybody. Maybe titles should be allowed to have ~100-120 chars instead of 80, it's a bit too limiting.
- savolai 8y agoI thought from title it would actually show films. By far the prettiest app for Helsinki kino/cinema though.
- shelune 8y agoI was just wondering today why Finnkino hasn't released their own app since their web experience is horrible. Nice!
- shrikant 8y agoBe careful what you wish for, you just might get it. Cineworld in the UK released an "app", which is just a WebView for their mobile website, so it replicates all the horrible aspects of that experience.
- rvanmil 8y agoThis looks really nice considering it's built with a cross platform framework. Did you also consider using React Native, and if so what made you decide to use Flutter instead? My team is looking to move away from Cordova for our cross platform mobile projects to either one of these so I'd be interested to hear about this. And thanks for open sourcing!
- roughike 8y agoI've been using Flutter for a year now, and I've loved it since the first time I gave it a try. In my work, I've been using other cross-platform technologies, such as Xamarin and React Native briefly (actually currently doing a customer project with RN). In my experience, RN is not that bad and mostly gets the job done, but I've grown to like Flutter more. The tooling and documentation are top-notch ("it just works"), and since it custom renders everything, the UIs are consistent across devices and platforms. For example, with React Native I had to recently fight with a third-party library to have gradients (RN doesn't support them), but couldn't get the library working. Another thing that I heard from colleagues was that React Native can introduce a lot of breaking changes between versions. I have a one-year-old hobby Flutter project and I was still able to run that without any pain when the first beta came out. Being a native Android & Java guy for the last 5 years or so, having the strong type system of Dart also felt more natural to me than Javascript.
- NicoJuicy 8y agoAnd what's your experience vs xamarin ?
- roughike 8y agoDisclaimer: It's been over a year and Xamarin could've improved a lot during that time. Coming from a Java/Kotlin background, I found C# to be really nice, but I had some issues with Xamarin tooling. I used Xamarin Studio and for the most part, it worked fine. Sometimes, there were some random crashes and project build errors that mysteriously resolved themselves. I also needed pie charts per the customer requirements and the best pie charting library I could find had licensing issues, so ended up implementing the pie chart myself which wasn't that bad. To compare, I would say the Flutter tooling is really good, compared to Xamarin where sometimes I would not be confident with the tools. Also, with Flutter, I can share the UI layer entirely, compared to the Xamarin project where we only shared some plain business logic with written purely with C# without Android/iOS SDK dependencies. I know about Xamarin.Forms, but have no experience to compare it with Flutter. At the time the project team didn't want to use Forms, but I don't remember why.
- primitur 8y agoNice! Looks like it could be the base of a new PopcornTime-style app, as well .. definitely a cool way to learn Flutter - thanks for sharing! :)
- egnehots 8y agocross platform = mobile only? What about desktop targets..
- roughike 8y agoLike I said before in another comment, there's only so much I can fit in a Hacker News title. :) I'd like to think that a lot of people use the term "a cross-platform app" to mean "an app that works on Android and iOS" though. Or "an app that works on more than one platform using shared code". That being said, Flutter does have unofficial Linux and MacOS desktop embedders: https://github.com/google/flutter-desktop-embedding https://github.com/google/flutter-desktop-embedding I haven't had the time to look into it, but having seen a couple example Flutter desktop apps, it seems really promising!
- malkia 8y agoI was able to get flutter to run in Windows, using this https://github.com/ds84182/flutter_sdl https://github.com/ds84182/flutter_sdl (so thank you ds84182 - whoever you are :)) but had to do some hacks. At the end I had flutter_sdl.dll (~10-15mb, depending how you compile it), and was able to add flutter_gallery (among other things). Things that are missing - keyboard input, but there is a very hihg-level plugin system how to achieve this. Just haven't had the time to do it. Tried implementing mousewheel, by simulating pad touches - but it ain't the same. Feels kind of obvious now, why it's not the same, but generally the controls themselves need to know about mousewheel. For example a gauge-like spinner can't be emulated this way. Still very snappy, and someone on the flutter-dev mailing list mentioned that he, or she got live reloading.
- kvgr 8y agoI have been recently looking into flutter, because I want to start developing multiplatform apps. What is the coding time compared to android? How does it behave with networking/camera?
- roughike 8y agoFor the difference in coding time, it's hard to estimate. I'd say once you get the hang of it, which for me was quite fast, it's much more pleasant and generally faster than working with native Android. Hard UI related things on Android (rounded corners or customizing the design library components) are pleasant to do and make a lot of sense in Flutter. Flutter and Dart come with a nice HTTP library out of the box. In my experience, it does everything you'd expect from a networking library. If you're looking for something like Retrofit on Android, there's a package called "jaguar_http" that does the job. For taking/picking images, you'd use the officially supported "image_picker" plugin. It exposes a nice API based on Dart's Futures and handles Android's onActivityResult dance for you in the background. If you're looking into embedding a camera preview in a Flutter app, there's a package called "camera" for that. There's generally a plugin that handles the platform stuff you need to do. If not, you can always create one and use Java/Kotlin/Swift/ObjC code to call the native SDK APIs you need yourself. Having published a couple plugins myself, I've found the plugin system to be really nice.
- Sileni 8y agoBeautiful work. I was actually looking for a mobile platform to build my newest project on, looks like I'm learning a bit of Dart. Hope you don't mind if I dig through your project every time I get stuck, it looks like you're using a lot of similar functionality :)
- roughike 8y agoThanks, glad you find it useful! And that's exactly the reason I open sourced it - I thought there was a need for a quite comprehensive but still simple sample app for people to learn :)
- gkya 8y agoHow feasible is a dev setup with Flutter where one uses Emacs (or any other general purpose text editor like vi) for coding and the flutter cli for compiling and testing? I do have a couple app ideas, and I'd definitely prefer to avoid the IDEs when possible (especially Android Studio which just strangles my laptop); Flutter seems to fit that workflow, but has anybody got actual experience doing that?
- roughike 8y agoI actually don't have any experience in that, but I think that you can absolutely do it. From what I understand, the IDEs just call the Flutter CLI and Dart analysis server, among other tools to get stuff done. From the top of my head, "flutter run", "flutter test", "flutter analyze", "flutter packages get" would be the commands you'd be using the most and could survive without using any IDEs. Of course you'd lose the autocompletion along with other IDE niceties, but I really believe that could be done. One thing is you might have to open XCode once to do the provisioning profile setup, but after that you should be good. I'm hoping someone with more experience could chime in.
- gkya 8y agoThanks. Is having XCode necessary in order to build and publish for iOS (I guess yes)? I don't use apple computers and use linux, so if that's the case I'd need to buy a Mac and XCode to do so, no?
- roughike 8y agoFor iOS apps, you need a Mac. Maybe (and this is theoretical) you could set up a combined Fastlane & CI integration that builds the apps using some cloud service, such as Macincloud, Bitrise, etc. Fastlane would then build and upload the iOS test builds automatically so can use them on your phone using the internal testing group in TestFlight. When everything seems fine, then you can just promote the internal test build to production. Since Flutter custom renders everything, you could do most of the development on a Linux machine and test on Android emulator/device. For just Android, you don't need a Mac at all.