Тёмный
FilledStacks
FilledStacks
FilledStacks
Подписаться
Build better mobile app UI with expression UI 👉 github.com/FilledStacks/expression-ui


My New Way of Building Flutter UI
5:07
5 месяцев назад
Mobile App UI Should be This Easy To Build
2:20
5 месяцев назад
Github Hates My App
4:23
6 месяцев назад
Accepting Permissions in Flutter is Impossible
2:27
6 месяцев назад
This Bug Crashed My Flutter App For 9 Days
4:46
6 месяцев назад
The ONLY Reason I Use Flutter
2:53
6 месяцев назад
Here's The Flutter App I Changed to Pure Dart
6:47
6 месяцев назад
How to Add TestSweets to Your Flutter App
4:54
7 месяцев назад
A New Tool for Production Flutter Teams
10:57
7 месяцев назад
Never Write Firebase Functions the Same Again
4:04
7 месяцев назад
How to Touch anything in Flutter!
1:30
2 года назад
Master Scroll Animations in Flutter
5:30
3 года назад
An Advanced Flutter Dialog System
12:21
3 года назад
How to Plan for Product Development
13:25
3 года назад
User Address Management on Firebase
14:49
3 года назад
Комментарии
@JohannRaphaelTKing
@JohannRaphaelTKing 23 часа назад
Hey man, don't know if you still reply here, but I'm getting an error. Flutter now requires me to add destinations:[], to the home_view.dart file for the body: Column(children: <Widget>[NavigationBar()],) part. Now its causing an Assertion failed: destinations.length>=2 is not true. How do I fix this?
@manishgautam2424
@manishgautam2424 5 дней назад
any selfhost code push for flutter
@usmanhafeez743
@usmanhafeez743 6 дней назад
Thanks for video ❤, i have question , do we need to write all apis code in a single service class ‘ApiService’? And then call them according to their viewModel?
@shashwataditya6685
@shashwataditya6685 20 дней назад
Hi Dane, you should create or get someone to create more videos on stacked cli, it's adoption will be so much improved that way.
@FilledStacks
@FilledStacks 19 дней назад
Totally agree with that. Adoption is not the goal for us at the moment. It's to create a tool that we use internally to speed up our process. When it becomes more popular the maintenance increases, and since we pay for all development it's very exepensive in terms of time (and money) to keep up with things like documentation, etc.
@Ashishlahre
@Ashishlahre 21 день назад
Crazy ass good advice, Thank you 🙏🏻
@FilledStacks
@FilledStacks 21 день назад
It's my pleasure
@Scott-oe7dv
@Scott-oe7dv Месяц назад
What do you recommend for pushing quick bug fixes to users?
@FilledStacks
@FilledStacks 28 дней назад
The only option out there is Shorebird for Flutter.
@Scott-oe7dv
@Scott-oe7dv 28 дней назад
@@FilledStacks have you used Shorebird before? I have looked at it but was wondering if you had come across other alternatives.
@user-eg4qz9yc7e
@user-eg4qz9yc7e Месяц назад
Does it support server side rendering?
@FilledStacks
@FilledStacks 28 дней назад
There are server-side rendering tools for Flutter, I've never used them myself.
@digitalpanda5969
@digitalpanda5969 Месяц назад
Use images
@FilledStacks
@FilledStacks 28 дней назад
For what?
@techietoons
@techietoons Месяц назад
I started learning Flutter since 3months just because of Wonderous app. It blew my mind.
@techietoons
@techietoons Месяц назад
Is this used in Wonderous app?. Can this be used in Android?
@FilledStacks
@FilledStacks Месяц назад
I don't think they use my package. Yes, this can be used on any platform.
@techietoons
@techietoons Месяц назад
@@FilledStacks No, I meant similar behaviour I have seen there.
@FilledStacks
@FilledStacks 28 дней назад
@@techietoons yeah, it's a common pattern.
@MuhammadIbrahim-qz1nu
@MuhammadIbrahim-qz1nu Месяц назад
00:02 Building TikTok's UI using Flutter 02:09 Refactoring middle and bottom sections into separate widgets 04:19 Creating a row with evenly spaced children and organizing code in a widgets folder 06:26 Creating social actions toolbar with icons and titles 08:43 Adjusting UI and Theme in Flutter 10:54 Organizing constants for easy reference and sharing. 13:16 Implementing UI for TikTok's plus icon and music player action. 15:20 Creating TikTok's UI components in Flutter. 17:30 Setting up containers and centering widgets
@FilledStacks
@FilledStacks Месяц назад
Thanks for adding the timestamps.
@usmanhafeez743
@usmanhafeez743 Месяц назад
Hey, Can you please create a video on memory management in flutter? If you don't have much time for creating video can you please create a short even. please.
@FilledStacks
@FilledStacks Месяц назад
Hey, I have never had to do memory management in Flutter because it uses a garbage collector so I have no experience in memory management in Flutter.
@usmanhafeez743
@usmanhafeez743 Месяц назад
@@FilledStacks okay, thank you so much for quick response 🙂
@azet955
@azet955 Месяц назад
Man what about scroll wheel on web? My clients are angry😅
@FilledStacks
@FilledStacks Месяц назад
haha. My clients are not angry about it.
@azet955
@azet955 Месяц назад
@@FilledStacks did u use some workarounds from flutter issue 32120 ?
@saqibamin9942
@saqibamin9942 Месяц назад
thanks for your guidance. more power to u
@FilledStacks
@FilledStacks Месяц назад
@@saqibamin9942 it's my pleasure to share the information.
@michaelamir6504
@michaelamir6504 Месяц назад
How can I make an interactive or dynamic UI with this? I mean can you choose which plan you want to subscribe to in this UI?
@FilledStacks
@FilledStacks Месяц назад
Hi, I don't know what you're asking. Could you phrase the question in a different way please.
@Scott-oe7dv
@Scott-oe7dv Месяц назад
Would still argue not to use Flutter for web apps, worked at a place where they have Flutter for mobile and web, so one code base. However, the web version lacks so much functionality due to having to support the mobile. Just to get the web app to run takes 1/2 minutes, hot reload hardly works due to its size. IMO, I would either go with NextJS or Angular for frontend and leave Flutter for mobile and that's as far as I would take it.
@FilledStacks
@FilledStacks Месяц назад
Makes sense, I've seen some of those experiences as well. I'm currently building a Flutter web app for a client and the hot reload is instant. Plus with WASM in stable the deployed version is also great. I can't tell the difference between Flutter web apps and NextJS ones in well built apps like rive.app and superlist.com . I also know how to make it feel premium, there's a few small things, which I show in a video, but I have like another 10 of those I apply and the apps feel "like a normal web application"
@migalv_17
@migalv_17 2 месяца назад
Hey Dane this looks really cool. Amazing work I'm really interested in where this ends up. I just have a few questions: - How can you have animations with that depend on user input like scrolling, swiping, etc... - Can you control animations, like resetting them or moving them forward x amount, etc... - How does this work with different screen sizes? - How does this work with Text? What about translations?
@FilledStacks
@FilledStacks 2 месяца назад
@@migalv_17 Thank you, I appreciate that. 1. Thats handled by the framework, you would build the i individual items then use the framework to add them into a list or a page view. 2. yes you can control them through a StateController that I built in expression UI. still some features missing but it works with my current apps. 3. Different screen sizes works the same as how framer handles it. One artboard per for, factor, mobile, tablet, desktop. Then for responsiveness inside a form factor you can bind your UI to the edges of screens so it sticks the same distance from each side. Video on my twitter profile. 4. You can dynamically change any text by passing in the value using the text property name you gave it in the editor so localization works the same as you currently do it in your codebase.
@MrVipulLal
@MrVipulLal 2 месяца назад
I couldn’t even get started with frog. I use plain old shelf
@FilledStacks
@FilledStacks 2 месяца назад
haha, frog was such an easy setup for me. Maybe the CLI isn't as great anymore. When I used it I got it setup in seconds the first time I used it.
@MrBiltoria
@MrBiltoria 2 месяца назад
what if my code if for mobile and web, do i make a seprate branch for mobile and do its navigation differently or use same navigation for both mobile and web.
@FilledStacks
@FilledStacks 2 месяца назад
You use the same approach. This approach works for mobile and web.
@MrBiltoria
@MrBiltoria 2 месяца назад
@@FilledStacks thank you, great tutorials
@user-kh6rp6yx1j
@user-kh6rp6yx1j 2 месяца назад
Hello man.
@FilledStacks
@FilledStacks 2 месяца назад
🥳
@szabog
@szabog 3 месяца назад
Hi, can you upgrade/recreate this awesome tutorial to newest Flutter 3.22 (WASM) ?
@FilledStacks
@FilledStacks 2 месяца назад
Sure. Run the flutter command with the --wasm flag in your project and you should have it working.
@user-kh6rp6yx1j
@user-kh6rp6yx1j 3 месяца назад
Hey man, good.
@FilledStacks
@FilledStacks 3 месяца назад
Thank you.
@shashanksingh4708
@shashanksingh4708 3 месяца назад
Hi . Is there any community of devs using stacked that I can join .....
@FilledStacks
@FilledStacks 3 месяца назад
hey, yes. on the docs site there’s a discord link. stacked.filledstacks.com
@classicgamerz5394
@classicgamerz5394 3 месяца назад
Node js 🔥🔥
@FilledStacks
@FilledStacks 3 месяца назад
Node Js would be great if I could write it with dart 😁
@hcrnn7518
@hcrnn7518 3 месяца назад
Your code is showing blank black screen after site loading. Am using flutter 3.16 environment. Is your meta framework working with latest flutter ?
@FilledStacks
@FilledStacks 3 месяца назад
yes it is. we use it with the latest flutter.
@TtnKolonyasi
@TtnKolonyasi 3 месяца назад
I hardly comment or like any videos on youtube but man you did save my day. Thanks for clean understandable explanation. Subscribed 💯
@FilledStacks
@FilledStacks 3 месяца назад
That's great to hear! I appreciate you leaving the comment.
@atishayjain1141
@atishayjain1141 4 месяца назад
Why don't you try Figma to code?
@FilledStacks
@FilledStacks 4 месяца назад
I don't want to maintain or write any UI code.
@atishayjain9341
@atishayjain9341 4 месяца назад
I didn't get you, if we are exporting code from figma then you don't have to write Or maintain ui code right?
@FilledStacks
@FilledStacks 4 месяца назад
@@atishayjain9341 based on the 5 I have tried the code didn’t work as is. Plus, you have to integrate your state and business logic which means you have to modify that code. so you have to update the code to fit into your project and the refactor so it can use shared widgets instead of pure from scratch widgets every time. Code gen is basically just someone else’s coding patterns for UI in your codebase, that you then have to maintain for the rest of time when that UI has to change.
@sravk245
@sravk245 4 месяца назад
This was super helpful. Question: How do you identify the indices of the item that are currently visible? I want to fire off an event tracker when a particular item is currently visible on the screen on a long list of scrollable items. Is this even possible?
@FilledStacks
@FilledStacks 4 месяца назад
Yes, you can do that. There's a few package that do it. Most of them use a combination of the offset + itemSize + listBounds to manually calculate if the item is available. The offset will tell you when an item is off screen at the scrolling direction end. The itemSize can be used to understand when that item has left the screen. The listBounds can be used to determine when an item has entered the screen visibility. This video is 2 years old so I think there might be additional properties you can explore. Check out the source of some of the "visibilty packages" and see what they do in the latest Flutter.
@scotttn1990
@scotttn1990 4 месяца назад
How does it handle resizing and using tablet vs mobile?
@FilledStacks
@FilledStacks 4 месяца назад
We use the same approach that Framer does. You define an artboard per form factor and it'll select the correct one based on your screen size. .i.e. mobile, tablet, desktop, watch. In addition to that we'll use some contraints in the framework that will keep UI pegged against other UI elements or the edge of the screens.
@nesterokertchiri2316
@nesterokertchiri2316 4 месяца назад
This will be life saver, amazing work !!! 🥳🥳🥳
@FilledStacks
@FilledStacks 4 месяца назад
Thank you ☺
@daniellawibz3878
@daniellawibz3878 4 месяца назад
I have a question when using stacked for forms, is there a way of using global key like the way it is with normal forms?
@FilledStacks
@FilledStacks 4 месяца назад
Hey, you can do that if you want to. All that Stacked does is sync the text value to the viewModel in realtime without adding additional code. This means you can write all business logic that needs to access the text from the form in the viewmodel without using the controller. Making it a pure class that can be unit tested with ease.
@trapeye3464
@trapeye3464 4 месяца назад
so create no code using code?
@FilledStacks
@FilledStacks 4 месяца назад
Kind of. I'd say create better products by not writing code. Delete code often, it's a healthy and required part of app maintenance.
@trapeye3464
@trapeye3464 4 месяца назад
@@FilledStacks I think kinda agree of this, but it like we do 2 times job
@nenadexe
@nenadexe 4 месяца назад
Problem with Rive in Flutter is that the app size gets more than 150MB mostly. Users won't like that...
@mehraanakbarii
@mehraanakbarii 4 месяца назад
How do you manage app state ?
@FilledStacks
@FilledStacks 4 месяца назад
State I manage using Rive runtime, but I trigger the transitions from my ViewModel. UI code , Business Logic, and Application Logic should be completely separate for testability reasons. Therefore you should be able to replace the UI entirely with something else and keep the rest of the app the same. Which is how this approach works.
@mehraanakbarii
@mehraanakbarii 4 месяца назад
@@FilledStacks great 👍
@flutterIgnite
@flutterIgnite 4 месяца назад
i follow you my mentor
@FilledStacks
@FilledStacks 4 месяца назад
😄
@simonpetera2486
@simonpetera2486 4 месяца назад
How about getting dynamic lists from api and Forms with multiple types of text fields?
@FilledStacks
@FilledStacks 4 месяца назад
This only replaces your UI, so the rest of your code looks exactly the same. 1. You'll call your backend code 2. You get your data 3. You construct your list 4. You pass your data to your list item created in rive 5. ExpressionUI dynamically updates your text of your list item. TextFields you'll do in code for now. I just design my decoration in rive then add it to the input field.
@dreamerslab
@dreamerslab 4 месяца назад
It's amazing ❤🎉
@FilledStacks
@FilledStacks 4 месяца назад
Thank you. I appreciate that.
@YazeedAlKhalaf
@YazeedAlKhalaf 4 месяца назад
This is cool work to be honest! Excited to see what happens, and hopefully can help too :D
@FilledStacks
@FilledStacks 4 месяца назад
I appreciate that Yazeed. I hope you can help too.
@conceptcoder
@conceptcoder 4 месяца назад
I'm really confused about your contents anyway... Where directly are they going to actually.....
@FilledStacks
@FilledStacks 4 месяца назад
I'm confused by this question. Are you asking where my content directs viewers / readers of it?
@conceptcoder
@conceptcoder 4 месяца назад
@@FilledStacks yes my brother.... Once you talk about flutter web, and then about testing, and then about build UI with Figma, then this video....
@FilledStacks
@FilledStacks 4 месяца назад
@@conceptcoder I talk about what I'm doing as a professional developer. What I'm currently doing is what you'll see on the channel.
@tothemoooon
@tothemoooon 4 месяца назад
how can we use this expression-ui framework?
@FilledStacks
@FilledStacks 4 месяца назад
I actually just finished writing the first post about how you can start using it. It's scheduled for release tomorrow. Link at the end of this comment. 1. You create your UI in rive 2. You load your artboard using the expressionUI open source package or rive directly. ExpressionUI is a collection of classes that make it more mobile developer friendly to build on the rive runtime. Sign up here to get tomorrows post: appsplusplus.carrd.co/
@jakobala
@jakobala 4 месяца назад
Dane, what have you done? ...
@FilledStacks
@FilledStacks 4 месяца назад
haha, I just wanted to have a bit more fun as I'm building my own mobile apps 😁 This is what I ended up with.
@taki_fouhal
@taki_fouhal 4 месяца назад
I love the idea , thank you for taking the initiative and starting the project. I may become a contributor in near future , because I see myself using it for my next projects .
@FilledStacks
@FilledStacks 4 месяца назад
That would be really awesome, when you're ready reach out and let me know. I have a discord where the contributors discuss implementations and ideas.
@tobidozed
@tobidozed 4 месяца назад
How would you manage localisations if the texts are inserted by rive? Also with this approach texts won't resize to the system font size of the users device right?
@FilledStacks
@FilledStacks 4 месяца назад
Good question. tl;dr - Both of those are possible. This is how we do it. You'll see the BaseExpressionView has a textValues property where you can pass in strings. github.com/FilledStacks/expression-ui/blob/73f9fb52910b0e266c28120af3eb248aa7bcb8be/packages/expression-ui-flutter/lib/src/expression_widgets/base_expression_view.dart#L30 The key will reference the name you gave your text in rive and it'll replace that text at runtime. So you can pass in your localisation strings in that way. The same goes for the text style. We can access the style of the Rive Text from code so I'll simply do a copyWith and update the fontSize with a multiplier using the system font size.
@tobidozed
@tobidozed 4 месяца назад
@@FilledStacks Oh that's really nice! Do you have any insights on performance? I used rive animation more often already but sometimes when the animation should take the whole screen and especially on older devices or when there is a lot going on in the animation the performance view from flutter dev tools showed many janks and you could also feel that it got kinda laggy
@FilledStacks
@FilledStacks 4 месяца назад
@@tobidozed When was the last time you used it? I haven't seen that behaviour in the app I'm building using rive.
@tobidozed
@tobidozed 4 месяца назад
@@FilledStacks Just recently. We wanted to have a fullscreen animation in the background and on top normal ui. I guess all together was too much but maybe it's fine if it's just the animation. It does get worse when the animation is complex like using a skeleton for movements in rive. Also for example in the duolingo app they just introduced a new fullscreen animation when activating an xp booster treasure box and it lags on my phone (iPhone 12). Would be nice to have an example app with your approach and analyse a bit :)
@FilledStacks
@FilledStacks 4 месяца назад
@@tobidozed i see. You can check out the expression-ui example app and navigate through the onboarding. That's full screen rive files in there.
@pjarnfelt
@pjarnfelt 4 месяца назад
How's load performance? You seem to have all screens in one big Rive file. Does this whole file need to be loaded into memory meaning future screens that are not relevant for the current screen will also be loaded? Or is it possible to have multiple Rive files and load e.g onboarding.rive then main_pages.rive etc? Or is this optimization not needed.
@FilledStacks
@FilledStacks 4 месяца назад
So far there's been 0 lag on any loading, I only have 7 screens, and a bunch of widgets, about 15 artboards in total and it all loads instantly. Yes, the whole file needs to be loaded. You can do multiple files for sections of your UI, especially if it gets big. I like 1 file per app, but like I said, the app is currently tiny. As far as I can tell this optimization is not needed, but if it is then Rive's pre-cache functionality should help a lot with the loading time.
@hutusama
@hutusama 4 месяца назад
nice🤩
@FilledStacks
@FilledStacks 4 месяца назад
Thank you! Glad you liked it.
@tylerthornton9611
@tylerthornton9611 4 месяца назад
Dane, this is incredible. I'm so excited for you and the mobile app community!
@FilledStacks
@FilledStacks 4 месяца назад
Thank you, I appreciate that Tyler. It's a really exciting product to be working on.
@1879heikkisorsa
@1879heikkisorsa 4 месяца назад
Even though I like the idea but I have some concerns regarding responsiveness (not adaptability). For mobile screens how do you handle different width for example? Usually you don't want everything to scale the same.
@FilledStacks
@FilledStacks 4 месяца назад
Good question. We'll use the same approach Framer does. 1 Artboard per form factor. Mobile, tablet, desktop, watch. So you'll add -mobile, -tablet, -desktop at the end of your artboard name and we'll automatically select the correct one based on the current screen size. You can see a working example in this PR demo: github.com/FilledStacks/expression-ui/pull/1
@BrendansReasons
@BrendansReasons 4 месяца назад
Cool to see you on shorts!
@FilledStacks
@FilledStacks 4 месяца назад
I liked creating these 😁 Didn't have more ideas to share. But I might make more soon.