-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Anyone using bloc in production? #139
Comments
We do! But of course, we/Felix also wrote the package... we are very happy with the results so far, and as you can see in the examples/docs/articles, we are investing more and more to make this package as good, easy, performant and high quality as possible ;) |
The impressive part of this package is the documentation and fully filled out examples. The number of "counter" apps that really don't tell you about localization, authentication and other real problems has just swamped the search process. I intend to build a complex app with this (after trying 3 others) and feel good about the chances of success after see the docs and samples. Thanks so much for sharing this. |
@nhwilly let us know about your experience! we hope you find this package very easy to use 🤞 but if you have any issues/questions, we will gladly help you! |
@nhwilly Can you define "complex app" for me? I've also been considering adding complexity to the sample apps. Mainly I'm thinking of extending the todo app to include a layer above the todo's called projects, adding side navigation and a firebase login with Google, Facebook, Phone Number, and Email. Personally, I feel like that would constitute a complex app.. would you agree or are there other things you think it should have? |
I'll just point out some things that I think I'll have to work out:
Those are just some of the things that come to mind on the fly here. |
Saw some recent changes. They look great. |
I’m just about to start a porting of an app from ionic to flutter and after digging around about state management in flutter i choosed to use flutter_bloc because is the only one which gave me some practical examples about authentication or managing long lists. Thank you! |
I'm grinding every day on a soon-to-be production app using |
I wonder how much I time I would spend to refactor exacting repo into using bloc. |
@ammaratef45 I think you can do it in less than a week. If you decide to give it a shot, I’m happy to help 👍 |
@felangel I will be glad to have your help |
I've started refactoring with the help of @felangel |
Love the recent updates - especially w/the Listener and Tree classes. One area I am still struggling with from a design perspective is how "big" or "small" a bloc should be. I am getting to the point where every piece of UI that has its own state has its own bloc, which seems like a lot of overhead - would love to hear from everyone else if they have any lessons learned or best practices around bloc "size" and scope? |
@bobwiller thanks for the positive feedback! We really appreciate it 😄 Regarding your question, I would love to hear more about the overhead you are referring to and some sample use-cases you have in your own applications. In general, I think it's a tough question to answer but I would say a good rule of thumb is if your bloc's state has properties that are unrelated, then it's probably managing state that is too broad and can be split into multiple, smaller blocs. I would try to keep blocs as small and as focused as reasonably possible (a bloc should only manage state for a single feature) but you should definitely not feel like there's a lot of overhead associated with managing these blocs; that might be a sign that your blocs are too small. It'd be awesome if you can share some concrete use-cases and we can try to give some suggestions about how to break them up into one or more blocs 👍 |
hi @felangel, may I ask your opinion about this article especially this part :
because i read a lot of articles about BLoC Pattern and I was confused. |
Hey @erwintan96 👋 Thanks for the positive feedback and hope that helps! 👍 |
hi @felangel 🍻 , i want to ask again.. |
Hi @erwintan96 the Detail Screen didn't create the bloc, it just accessed it using the |
Hi @felangel i’m starting the porting of a social network app from ionic to flutter. What do you think about bloc for global state management? For example i will have to implement a bloc for authenticated user, one for the posts, one for notification, one for logged user followers/followings and so on, and many of them should stay at the top of the app widget tree to let app to be synced. When I press like in a screen and then navigate to another screen where there is the same post I have to find that post already liked or when I follow someone and then I navigate to my profile I have to find the same followed user. I normally used redux for this kind of central state management but now I would like to manage everything with bloc and not only use it for local state and then falling back to redux for global state. Thank you 🙏 |
@quantosapplications that should be fine if you need them to be globally available. Only the portions of your app wrapped in |
Thank you @felangel, so you do think that there are no worries about putting 5/10 different bloc on top of material app? I’m stucked on where to put blocs, if is more correct a bloc-per-page way or design one bloc every big functionality of the app. |
@quantosapplications I think it's fine as long is it makes sense. Things like |
You might wanna update your avatar as well :) |
I am working with Bloc to recreate an app done in react native to an app that have mobile and web versions. I am using flutter and angulardart, hopefully using just flutter and its web version when the development preview goes prime time. It is a very simple app in terms of what it does on the front end (login and submit small bits of data with a more complicated backend). Maybe 4 screens when finished and all the state management shown in the firebase login example. |
I'm about to start transitioning from my Xamarin Forms application to flutter, using this package. I'm super keen for any refactoring help that anyone could offer. It's a huge change for me (learning dart etc) but I just can't use XF any more. So many breaking changes in the latest release ;_;. Plus that hot reload! |
I solved , thx! |
Hi everyone! I am working on a flutter timer app following the nice tutorial https://medium.com/flutter-community/flutter-timer-with-flutter-bloc-a464e8332ceb using flutter_bloc package. Does anyone have a suggestion on how to refactor this example https://github.com/felangel/bloc/tree/master/examples/flutter_timer in order to have the timer work also in background ? Thanks and congrats for the nice package, |
Hi everyone! (Sometimes after hours of development it happens that I have problems with the library.. It is always my fault 😆) |
Hi everyone! Source Code: https://github.com/YeungKC/widgets_visibility_provider |
Hey guys! It took some practice to learn how to use the package entirely as intended because there are lots of ways to misuse the tools, but the payoff has been great and I'm so glad I don't have to implement custom blocs myself! |
Hi Guys, I'm using BLoc library from quite long time and published 1st version of an enterprise level application on October 17, 2019. Till now I've published 22 version for this application and keep going on. App is available on both Android and IOS platform and you can access easily. It's quite nice library and now I'm facing some hard time while upgrading version. Requires a little help from BLOC team especially from @felangel . Please It's a humble request to update your Weather Application example with latest version of BLoc. It's really helping me a lot. Thanks and regards, |
@muhammadmateen027 that's amazing! I will prioritize updating the weather tutorial but in the meantime you can always refer to the weather example source code since the code itself is up-to-date. |
Been using it at our start-up Honeybee Hub since last November when we first pushed out our app - It's be awesome and has made state management a breeze! If anyone is interested, the app is here on iOS and android Thanks Felix for the package - also thanks for all of the immediate and detailed support whenever we had questions! |
Oh boy here we go again! I have published my own first application on Google Play Store last month. I hope it will be on AppStore in next month too. Android: Link I used classic Bloc to manage app's authentication state. Thanks to Cubit and a little bit of object-oriented programming I managed to create highly modular codebase for this application that I'm really happy with. In fact, although this app has more than 25 views that show users a list of items, I only use a single CubitState class to represent all of them again with the help of object-oriented programming and equatable package. I even tried to implement my own undo/redo logic but surrendered to replay_bloc at last :) Good: My opinion is that bloc and flutter_bloc with all of its extensions are pretty awesome since all of the variants of Bloc supports Stream operations by default. Before migrating nearly all of my business logic to Bloc or Cubit I tried many other state management solutions including Provider, Redux and MobX. After weeks of examination I decided to continue with Bloc because the idea of being able to utilize my state as Stream is very useful, and as I said before it reminds me of a state machine and I love automata theory :) Bad: Not a bad thing but a feature request: I think flutter_bloc should have a special widget like Selector as we have in Provider, not sure how it's affect the other parts of the architecture. A really personal note: Some people are crying about bloc/flutter_bloc to produce boilerplate code than other state management solutions but I don't think so. If you know what you are doing you can write less code and still have good performance and plus modularity with flutter_bloc. @felangel Thanks again! Version: latest Years of experience: 1.5 (Flutter) I'm really not comfortable for sharing the link of the application since it may contain google ads in the future releases. @felangel Let me know and I can remove the link and maybe add some screenshots from the application :D |
Bloc has BlocConsumer which combines BlocListener and BlocBuilder |
Does anyone have any experience working with BloC to BloC communication? I have a bluetooth BloC that takes input from sensors and I want it to automatically send the data vai my Sockets BloC to the server for data storage |
Have you tried injecting one of the BLoC instances to another? You can listen bluetooth BLoC with Here is an abstraction:
|
Perfect! Thanks a bunch |
I work on a project at my company, the team has been using Bloc for some time now, I joined recently to the project and I'm very happy with it. Android: https://play.google.com/store/apps/details?id=ues21.edu.ar btw long live Flutter!! |
Android: https://play.google.com/store/apps/details?id=app.forghoon.driver I've 5 years experience in mobile development but two years in flutter. |
The I/O Photo Booth for Google I/O 2021 was made with Bloc! 🎉 💙 GitHub Repo: https://github.com/flutter/photobooth |
I am bit new to flutter. learning and building ready-to-publish app to play store side-by-side. I am considering bloc for my dead simple app which store data in local db. (Experimenting with hive for now). Knowing a bit about state management, I am still confused among the ChangeNotifier-Provider and bloc pattern. |
We use Bloc in production. It is amazing! |
Use the following template: If available on stores Your opinion |
Currently in 2 Flutter projects. One is internal company project. Another is OpenSource PrivacyBlur: https://github.com/MATHEMA-GmbH/privacyblur |
iOS: App Store Source Code: https://github.com/Livinglist/Hacki Years of experience: 2 |
Sponty: Spontaneous Gatherings Years of experience: 4 |
We are using Bloc/Cubit in production for two of Czechia's biggest school information systems, including the newly redesigned Škola OnLine app. iOS: App Store Please take a look at our case study https://www.netglade.com/en/reference/skolaonline Years of experience: 6 with Flutter, 4 with Bloc (both since the beginning) |
I just opened #3940 about performance feedback & enabling Github Discussion, & this issue looks like a relevant transfer to a Discussion. I have been having performance issues and as there are currently no official docs on it would appreciate discussing it more in a non-issue setting. However, comments like this: & helped me check and optimize some code, thank you |
Hey everyone, I found BLoC after trying to build my first app with Flutter and getting a headache using the native state management. 6 months later, I released my app with BLoC with more features. It particularly helped me separate feature logic. My app is a personal, private, simple receipt manager with OCR Searching, PDF exporting, a folder system & more. Check it out here (for free). https://apps.apple.com/us/app/receiptcamp/id6460006476 https://play.google.com/store/apps/details?id=com.nilekell.receiptcamp.app |
SimFlyPad, the Android version is using bloc. https://play.google.com/store/apps/details?id=com.seeingsky.simfly_pad |
I've built an open source mobile application using bloc called Groceries and I gotta say, I've never been happier, working with Bloc is such an amazing experience, its architecture is what separates it from other state management solutions. I'm a huge advocate for clean code and clean architecture, and bloc integrates seamlessly with the software i build. All production applications I've worked on didnt use bloc, and I've noticed more bugs occuring with those projects more than Groceries. What also separates Bloc from all other state management solutions is how its built, it tells you how much of a great engineer @felangel is. |
Similar to:
reactiveui/ReactiveUI#979
PrismLibrary/Prism#1016
orientechnologies/orientdb#4806
brianegan/flutter_redux#86
Use the following template:
If available on stores
iOS:
Android:
If open source
Source Code:
Your opinion
Version: ?
Years of experience: ?
Good: ?
Bad: ?
Thank you very much!
The text was updated successfully, but these errors were encountered: