Flutter

613 readers
1 users here now

Flutter and the related logo are trademarks of Google LLC. We are not endorsed by or affiliated with Google LLC

founded 1 year ago
MODERATORS
1
 
 

Hello! I'm the maintainer of Hive Community Edition.

I am proposing to introduce a new annotaiton called @GenerateAdapters. This allows you to generate TypeAdapters for types without explicitly annotating any types or fields. This is much easier to maintian and also allows generating adapters for types outside the current package.

For example:

@GenerateAdapters([
  AdapterSpec<ClassSpec1>(),
  AdapterSpec<ClassSpec2>(),
  AdapterSpec<EnumSpec>(),
])
void _() {}

This will generate type adapters for all the types specified. The main difference between using @GenerateAdapters and explicit annotations is that type IDs and field indexes are determined automatically. This information is then stored in a hive_schema.yaml file which informs future generations which type IDs and field indexes are in use.

My main concern is introducing this feature in a way that allows any future changes to be non-breaking. I believe I have eliminated most of the risk by basing the annotation off of mockito. At the moment there aren't actually any fields in the AdapterSpec class, but adding any in the future will not be a breaking change.

I would really appreciate any feedback the Hive community has on this. If you want to try out the @GenerateAdapters annotation to see how it works in your project, add the following to your pubspec:

dependency_overrides:
  hive_ce:
    git:
      url: https://github.com/IO-Design-Team/hive_ce
      ref: ec6e8d7dfc81a4adb3a9ae9eca0e78bc104116d8
      path: hive
  hive_ce_generator:
    git:
      url: https://github.com/IO-Design-Team/hive_ce
      ref: ec6e8d7dfc81a4adb3a9ae9eca0e78bc104116d8
      path: hive_generator

See the new documentation here

Note that this is a breaking change for the generator, as hive_registrar.g.dart has moved to hive/hive_registrar.g.dart to not clutter the lib folder. I have created a migration guide here

2
 
 

I have just released my latest app!
IdentiFace PRO: a free and open source multiplatform face recognition app!

Check it out: https://wp.me/p6raR-h3

@flutter

3
4
5
 
 

The pubstats.dev page keeps track of historical pub.dev data. I just made it so that it can also show the rank of a package on pub.dev based on its popularity score. For example dio is rank 20 right now.

If you haven't seen pubstats.dev before here are some other features:

  • Like count and popularity score tracked over time for all packages on pub.dev
  • Historical tracking of a lot of package metadata such as version and dependents
  • Compare like count and popularity graphs across multiple packages (ex https://beta.pubstats.dev/#/packages/dio,http)
  • If you sign in you can set up alerts for package info changes. Very useful for making sure you have maximum pub points! There are only Discord webhook alerts for now since that's what I use personally, but if you'd like to see more options feel free to contribute on GitHub.

As an added bonus, https://beta.pubstats.dev uses the new WASM renderer. Thanks to the Flutter team for helping me make that possible! There is some weirdness with Google OAuth still with WASM (see this issue), but everything else works. If you want to set up Discord notifications you might want to use the stable https://pubstats.dev for now.

6
7
 
 

Since Hive v2 has been abandoned and v3/v4 are nowhere to be seen I decided to hard fork Hive into Hive Community Edition (hive_ce, hive_ce_fluter, hive_ce_generator). Originally hive_ce was just going to be in maintenance mode to keep up to date with the evolving Flutter/Dart ecosystem (mainly Flutter WASM support right now), but there are some things that bothered me too much to ignore.

First of all... Hive v2 didn't support Sets. Why? I don't know but hive_ce does. Hive boxes natively support the Set type and the generator supports classes with Set fields.

One of the main pain points with TypeAdapters was remembering to register them all. Well forget no longer because hive_ce_generator generates an extension method on Hive to register them all in one go:

import 'package:your_package/hive_registrar.g.dart';

void main() {
  final path = Directory.current.path;
  Hive
    ..init(path)
    ..registerAdapters();
}
8
 
 

It has been a year since I decided to start learning Flutter [https://programming.dev/post/186393](Original Post), and it has been an amazing experience. Throughout this year, I managed to land an internship as a Flutter developer, get a decent job as a Flutter developer, and graduate with a computer science degree. So for anyone who is hesitating to start learning Flutter out of fear of the job market, I can tell you not to worry, there are a lot of jobs available. Some good resources to start with are the official Flutter documentation (which is incredible), as well as the official Flutter YouTube channel.

Finally, thanks to everyone who helped me when I was starting with Flutter, and good luck to all those who are just getting started.

9
 
 

My phone (Samsung A14) is low-end, and lags while using an app made with Flutter.

10
11
12
 
 

I posted about this package before and just got made fun of for the name, but this is a useful update for developers that work on large mono-repos on a daily basis. The puby link command used to require pubspec.lock files to be checked into version control in order to know which dependencies to grab, which most open source mono-repos do not allow. Notably, I work on the flutter/packages repo a lot and dealing with dependency resolution is a pain, but I just released an update to puby to fix this. This involves reusing the dependency resolution code directly from the pub command in order to catalog dependencies rather than relying on lock files. What this means in practice is you can have an empty pub cache, make a clean clone of the flutter/packages repo, and have all dependencies resolved in less than 30 seconds. The puby link command is now almost twice as fast as melos bootstrap and requires zero setup whereas melos likes to complain about your repository structure.

13
 
 

**ALPHA RELEASE 0.0.7 NOW OUT**
Finally, after a period of silence... A new release has appeared!
Now with:
- UI design overhaul
- New navigation bar, removed slow animations
- Modified "Calendar" page to "Range"
- Minor icon changes
- Added source code and community links

Available for download **now** on GitHub!
- Binaries: https://github.com/WinsDominoes/dateapp/releases/tag/v0.0.7
- Flatpak: https://github.com/AtiusAmy/net.winscloud.DateCalculator/releases/tag/v0.0.7

Source code available at: https://git.winscloud.net/winsdominoes/dateapp

@flutter #flutter #dateapp

14
 
 

Hiya everyone! We're on the Fediverse! #introduction

Date Calculator is a Flutter app to calculate date related things, it is still in alpha/pre-alpha so it is not feature complete, but the bare minimum is already here.

It is developed by @winsdominoes at the request of @AmyIsCoolz :3

It is available on Linux, Android, MacOS, and Windows
Download here: https://github.com/WinsDominoes/dateapp/releases/
Flatpak: https://github.com/AtiusAmy/net.winscloud.DateCalculator/releases/

@flutter #Flutter #FlutterDev #Linux #Android #MacOS #Windows #Dates #FOSS

15
 
 

I gave a talk about my flutter_filament package, which integrates the Filament PBR renderer so you can display 3D content in Flutter applications.

If anyone is interested, here are the slaides!

16
17
18
 
 

Feedback lets users give feedback by annotating a screenshot of the current page and adding text, all directly within your app. Resources:Pub.dev → https://g...

19
20
 
 

For context, I work as a Mobile App developer for a company and use Flutter. We implemented Ads for our clients, and they have implemented lots of ads (a minimum of 3 in each screen).

After adding Ads, we noticed a small performance drop in Android devices. However, the performance on newer iOS devices is terrible.

There is already an open issue on Github and it seems the conflict is because Flutter display Ads using Native Views.

Did anyone here suffer from this and found a solution? We're currently debating if we will rewrite the app entirely in React Native.

21
22
 
 

Last year, we partnered with the team at gSkinner to develop Wonderous, a reference app to showcase the high-quality experiences possible with Flutter. One of the goals for creating Wonderous was to provide an open-source example that demonstrates best practices. In that same spirit, we audited Wonderous against Android’s large screen guidelines.

It's a Medium article but shouldn't count against any stupid quotas since it is from the Flutter team.

23
24
 
 

I haven't seen any of the issues mentioned in the article. I suspect it is related to the libraries the author's project is using and I may not be using. These look like good temporary workarounds until fixes in the libraries can be rolled out.

25
 
 

Here's a nice simple article explaining enhanced enums that have been around for a while but may be something overlooked. Between these and sealed classes I think Dart has an excellent story for pattern matching.

view more: next ›