Please open Telegram to view this post
VIEW IN TELEGRAM
β€11π₯10π©3π€©2π1
Site about android development has cool articles about architecture
https://developer.android.com/topic/architecture/intro
https://developer.android.com/topic/architecture/intro
Android Developers
App architecture | Android Developers
App architecture design is an important consideration for ensuring that your apps are robust, testable, and maintainable. Android provides a set of libraries and components to help you put together your app according to best practices.
π7π₯1
How does #Flutter draw a frame?
The process can be initiated by several sources - setState, render object, system, or engine.
When you call setState, it marks the element as dirty and asks the engine (C++) for a frame via FFI. Later, when the engine is ready, it calls the WidgetsBinding.drawFrame callback.
The drawFrame iterates through the element tree and rebuilds dirty elements. If dirty elements change their size, color, or orientation (generally something that render objects are interested in) - render objects are marked as dirty.
Then the framework performs layout and painting.
Finally, the scene (or frame) is built and sent to the painting engine.
The process can be initiated by several sources - setState, render object, system, or engine.
When you call setState, it marks the element as dirty and asks the engine (C++) for a frame via FFI. Later, when the engine is ready, it calls the WidgetsBinding.drawFrame callback.
The drawFrame iterates through the element tree and rebuilds dirty elements. If dirty elements change their size, color, or orientation (generally something that render objects are interested in) - render objects are marked as dirty.
Then the framework performs layout and painting.
Finally, the scene (or frame) is built and sent to the painting engine.
π₯3π2
Ian Hickson left Google.
Lead that worked on flutter last 11 years.
Thatβs not a good sign for Google, especially for their techniques in managing projects.
https://ln.hixie.ch/
Lead that worked on flutter last 11 years.
Thatβs not a good sign for Google, especially for their techniques in managing projects.
https://ln.hixie.ch/
π’9π€―4
I am planning on doing a live broadcast on YouTube this Saturday or Sunday. Whatβs the most convenient time for you?
Anonymous Poll
19%
Morning (9-11)
25%
Day (13-16)
77%
Evening (16-19)
I will start my side project that involves creating custom backend and cross platform app.
I will tell about the idea and features.
Then, we will design authentication & authorization.
Technologies: Go, Flutter, Kubernetes.
I will tell about the idea and features.
Then, we will design authentication & authorization.
Technologies: Go, Flutter, Kubernetes.
π₯16π₯°3β€2
Mobile Tech
Started :) https://www.youtube.com/watch?v=gYHgreP2mGQ
Huge thanks to everybody who was there :)
Next time we will start writing #golang code.
Focusing more on preparing, being concise and structured!
Next time we will start writing #golang code.
Focusing more on preparing, being concise and structured!
β€10π₯3
https://joebubna.github.io/Cora/documentation/v2/dependency-injection/overview/
Good article about Dependency Injection and Service Locator
Good article about Dependency Injection and Service Locator
π8β€2
Enhancing Image Rendering Efficiency
Handling large images often leads to excessive consumption of device memory. To tackle this issue, DevTools offers valuable insights into identifying images that are too large.
To optimize, consider setting 'cacheWidth' or 'cacheHeight' properties on your images. This approach decodes and stores images in memory at a designated size.
There is also a ResizeImage class in the SDK that can be used to resize the image.
See how the GSkinner team utilized AppImage in the Wonderous project, offering a real-world example of these techniques in action - https://buff.ly/46sE71y
#FlutterDev #Flutter #Performance
Handling large images often leads to excessive consumption of device memory. To tackle this issue, DevTools offers valuable insights into identifying images that are too large.
To optimize, consider setting 'cacheWidth' or 'cacheHeight' properties on your images. This approach decodes and stores images in memory at a designated size.
There is also a ResizeImage class in the SDK that can be used to resize the image.
See how the GSkinner team utilized AppImage in the Wonderous project, offering a real-world example of these techniques in action - https://buff.ly/46sE71y
#FlutterDev #Flutter #Performance
π9
π4
Do not use Future.wait in Dart!
When dealing with multiple futures simultaneously, it is important to put them all into an event loop. A common approach is to use Future.wait, but it has drawbacks:
- If a future fails, the returned future will complete with an error and waste time executing other futures (unless eagerError is set).
- You can't handle events and errors individually.
- Type information is lost.
A better alternative is to use streams, which allow you to process futures individually and handle errors without interrupting execution or losing data.
If you need ordered data, consider using an await-based approach, as shown. This allows for concurrent processing of each future while preserving types and error handling.
There is also a new wait API provided by Records, but there is no eagerError equivalent, so streams and standard futures remain the recommended solution for concurrent, robust future processing.
When dealing with multiple futures simultaneously, it is important to put them all into an event loop. A common approach is to use Future.wait, but it has drawbacks:
- If a future fails, the returned future will complete with an error and waste time executing other futures (unless eagerError is set).
- You can't handle events and errors individually.
- Type information is lost.
A better alternative is to use streams, which allow you to process futures individually and handle errors without interrupting execution or losing data.
If you need ordered data, consider using an await-based approach, as shown. This allows for concurrent processing of each future while preserving types and error handling.
There is also a new wait API provided by Records, but there is no eagerError equivalent, so streams and standard futures remain the recommended solution for concurrent, robust future processing.
π₯13π5π€3π1πΎ1