Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ Telegram channel photo

Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ

@hardworkerflutterPublic Channel

ΠŸΠΈΡˆΡƒ простым языком ΠΏΡ€ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° Flutter & Dart (iOS, Android, macOS, Windows) ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² Ρ†Π΅Π»ΠΎΠΌ. Обо ΠΌΠ½Π΅: https://t.me/hardworkerFlutter/2 Π§Π°Ρ‚: @flutterDevChat Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠΈ ΠΊΠ°Π½Π°Π»Ρ‹: @hardworkerIT ΠΈ @itDenisov

141

Last views

414 (414 subscribers)
Участники
β€”
Rating
43
Total Posts
Oct 16, 2026, 1:37 PM
ОбновлСно
Apr 17, 2026
Created
Stats

Π’Ρ‹ просматриваСтС русский ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ язык сайта.

Channel Information

Channel Information
Channel NameFlutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
Username@hardworkerflutter
CategoryΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния
Languageрусский
CountryРоссия
Участники414
Channel TypePublic Channel
Created17 Π°ΠΏΡ€. 2026 Π³.
Last Updated16 ΠΎΠΊΡ‚. 2026 Π³. β€’ 5 Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄
StatusActive

Π Π΅ΠΉΡ‚ΠΈΠ½Π³

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³
#36939+99
Π Π΅ΠΉΡ‚ΠΈΠ½Π³ ΠΏΠΎ языку
#15010+25
Π Π΅ΠΉΡ‚ΠΈΠ½Π³ ΠΏΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ
#172+1

Рост участников

ВсСго: 41430 Days growth: +348.9%
09/1709/2209/2710/0210/0710/1210/16
Рост участников - 30 Days
DateSubscribers
17:09:2026380
18:09:2026380
19:09:2026380
20:09:2026380
21:09:2026380
22:09:2026380
23:09:2026380
24:09:2026380
25:09:2026380
26:09:2026380
27:09:2026380
28:09:2026380
29:09:2026380
30:09:2026380
01:10:2026380
02:10:2026380
03:10:2026380
04:10:2026380
05:10:2026380
06:10:2026380
07:10:2026380
08:10:2026380
09:10:2026380
10:10:2026380
11:10:2026380
12:10:2026380
13:10:2026380
14:10:2026380
15:10:2026380
16:10:2026414
Рост участников - Weekly
DateSubscribers
Week of 13:04:2026131
Week of 20:04:2026131
Week of 27:04:2026131
Week of 04:05:2026158
Week of 11:05:2026158
Week of 18:05:2026158
Week of 25:05:2026158
Week of 01:06:2026158
Week of 08:06:2026158
Week of 15:06:2026158
Week of 22:06:2026158
Week of 29:06:2026158
Week of 06:07:2026286
Week of 13:07:2026286
Week of 20:07:2026286
Week of 27:07:2026286
Week of 03:08:2026286
Week of 10:08:2026286
Week of 17:08:2026361
Week of 24:08:2026361
Week of 31:08:2026369
Week of 07:09:2026380
Week of 14:09:2026380
Week of 21:09:2026380
Week of 28:09:2026380
Week of 05:10:2026380
Week of 12:10:2026414
Рост участников - Monthly
DateSubscribers
April 2026131
May 2026158
June 2026158
July 2026286
August 2026369
September 2026380
October 2026414
Рост участников - Yearly
DateSubscribers
2026414

Top 10 posts

Most viewed posts from this channel

By views
  1. #1πŸ‘£ Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Flutter-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° iPhone Π±Π΅Π· Mac ΠΈ подписки Apple2.3K
  2. #2πŸ‹οΈ Установка APK Π½Π° Android услоТняСтся: придСтся ΠΆΠ΄Π°Ρ‚ΡŒ сутки2.0K
  3. #3πŸ‘£ ΠŸΠΎΡ‡Π΅ΠΌΡƒ Flutter - ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с ИИ-Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ1.8K
  4. #4πŸ‘£ Π Π΅Π»ΠΈΠ· Flutter 3.47: Π³Π»Π°Π²Π½Ρ‹Π΅ измСнСния для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²1.8K
  5. #5πŸ‘£ GenUI Π² дСйствии: ΠΊΠΎΠΌΠ°Π½Π΄Π° Flutter Ρ€Π°Π·Π΄Π°Π»Π° 3000 Ρ‡Π°ΡˆΠ΅ΠΊ ΠΊΠΎΡ„Π΅ с ИИ-рису1.7K
  6. #6πŸ‘£ Анонсирован Genkit для Dart: Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для ИИ-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ1.6K
  7. #7πŸ‘£ ΠŸΠΎΡ‡Π΅ΠΌΡƒ primary constructors Π² Dart слоТнСС, Ρ‡Π΅ΠΌ каТСтся1.6K
  8. #8πŸ‘£ АрхитСкторы, тСстировщики ΠΈ ΠΊΠΎΠ΄Π΅Ρ€Ρ‹. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ1.4K
  9. #9πŸ‘£ Π—Π½Π°Π΅Ρ‚Π΅ Flutter? Π—Π½Π°Ρ‡ΠΈΡ‚, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ бэкСнд Π½Π° Dart920
  10. #10πŸ‘£ Π Π΅Π»ΠΈΠ· Dart 3.13: Ρ‡Ρ‚ΠΎ принСсла новая вСрсия827

ПослСдниС посты

Video
πŸ‘£ ΠŸΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ пагинация Π²ΠΎ Flutter Π½Π° Riverpod

БСсконСчная Π»Π΅Π½Ρ‚Π° - привычная Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Но рСализация ΠΏΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΠΈ часто прСвращаСтся Π² ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΊΠΎΠ΄. Π₯очСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π°Π·Π½Ρ‹Ρ… экранах. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Riverpod рассказываСтся, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±Π΅Π· сторонних ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².


Π’ Ρ‡Π΅ΠΌ ΡΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для ΠΏΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚. Но ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… устарСли, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ классы ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€ страницы всСгда число. Π­Ρ‚ΠΎ Π½Π΅ всСгда Ρ‚Π°ΠΊ. НапримСр Π² банковском ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Π΄Π°Ρ‚Π°ΠΌ. Π’ΠΎΠ³Π΄Π° индСкс страницы - это Π΄Π°Ρ‚Π° ΠΈΠ»ΠΈ строка, Π° Π½Π΅ Ρ†Π΅Π»ΠΎΠ΅ число.

РСшСниС - ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ собствСнный ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΠΎΠ²Π΅Ρ€Ρ… AsyncNotifier. Он Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ индСкс, Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ страницу ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊ ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ элСмСнтам.


Как устроСн ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€:

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ°: T для Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ I для индСкса страницы. Π•ΠΌΡƒ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚Ρ€ΠΈ Π²Π΅Ρ‰ΠΈ: Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ индСкс, способ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы ΠΈ способ вычислСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ индСкса.


abstract class PaginationController<T, I> {
I get initialPage;
late I currentPage = initialPage;

FutureOr<List<T>> loadPage(I page);
Future<void> loadNextPage();

I nextPage(I currentPage);
}


Π—Π°Ρ‚Π΅ΠΌ создаСтся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ этот интСрфСйс ΠΏΠΎΠ²Π΅Ρ€Ρ… AsyncNotifier.


mixin AsyncPaginationController<T, I> on AsyncNotifier<List<T>>
implements PaginationController<T, I> {
@override
late I currentPage = initialPage;

@override
FutureOr<List<T>> build() async => loadPage(initialPage);

@override
Future<void> loadNextPage() async {
final newState = await AsyncValue.guard(() async {
currentPage = nextPage(currentPage);
final elements = await loadPage(currentPage);
return [...?state.valueOrNull, ...elements];
});
state = newState;
}
}


ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ индСкса, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ страницы ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ экрану остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ индСкс, запрос Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ индСкс.


Как выглядит использованиС:


class RepositoriesViewModel extends AsyncNotifier<List<Repository>>
with AsyncPaginationController<Repository, int> {
@override
int get initialPage => 1;

@override
FutureOr<List<Repository>> loadPage(int page) async {
final (_, items) = await repository.fetchRepositories(page: page);
return items;
}

@override
int nextPage(int currentPage) => currentPage + 1;
}


ВсС, Ρ‡Ρ‚ΠΎ трСбуСтся ΠΎΡ‚ экрана - Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.


Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² интСрфСйсС:

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ† ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ NotificationListener.


NotificationListener(
onNotification: (ScrollNotification info) {
if (info is ScrollEndNotification &&
info.metrics.pixels >= info.metrics.maxScrollExtent) {
viewModel.loadNextPage();
}
return true;
},
child: CustomScrollView(...),
)


Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π΅Ρ‚ список Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°, вызываСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ страницы.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

ΠŸΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΡ Π½Π° Riverpod ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΠΎΠ²Π΅Ρ€Ρ… AsyncNotifier Ρ…Ρ€Π°Π½ΠΈΡ‚ индСкс, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ страницы ΠΈ добавляСт Π½ΠΎΠ²Ρ‹Π΅ элСмСнты. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ экран опрСдСляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ индСкс, запрос ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ индСкс.

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π΄Π°Π΅Ρ‚ Ρ‡ΠΈΡΡ‚ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ нСчисловых индСксов ΠΈ Π»Π΅Π³ΠΊΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ поиском, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ТСстом.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
141005
Video
πŸ‘£ Π Π΅Π»ΠΈΠ· Genkit Dart 1.0: ИИ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π°Π³Π΅Π½Ρ‚Ρ‹ Π½Π° Dart ΠΈ Flutter

Π’Ρ‹ΡˆΠ»Π° пСрвая ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия Genkit Dart - Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ИИ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΈ ИИ-Π°Π³Π΅Π½Ρ‚ΠΎΠ² Π½Π° Dart. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ прилоТСния с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, инструмСнтов ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ, Π½Π΅ выходя ΠΈΠ· экосистСмы Dart ΠΈ Flutter.

РаньшС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π±Ρ‹Π» Π² статусС preview. ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ связь ΠΎΡ‚ сообщСства ΠΏΠΎΠΌΠΎΠ³Π»Π° Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ API ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ инструмСнтов для Π·Π°Π΄Π°Ρ‡ Π½Π° ΠΏΡ€ΠΎΠ΄Π΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π»ΠΈΠ· Π³ΠΎΡ‚ΠΎΠ² ΠΊ использованию Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….


Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ:

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Genkit Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:


dart pub add genkit


Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ скиллы для ИИ-ассистСнтов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π·Π½Π°Π»ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ API ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Genkit Dart:


npx skills add genkit-ai/skills



Π•Π΄ΠΈΠ½Ρ‹ΠΉ API для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ:

Genkit ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Google Gemini, Anthropic Claude, OpenAI ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, совмСстимыС с OpenAI, Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄ΠΈΠ½ интСрфСйс. ΠŸΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π±Π΅Π· пСрСписывания Π»ΠΎΠ³ΠΈΠΊΠΈ прилоТСния.


final ai = Genkit(plugins: [googleAI(), anthropic()]);
final prompt = 'Suggest a weekend getaway from San Francisco.';

final fromGemini = await ai.generate(
model: googleAI.gemini('gemini-flash-latest'),
prompt: prompt,
);

final fromClaude = await ai.generate(
model: anthropic.model('claude-sonnet-5-5'),
prompt: prompt,
);



Π’ΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· flows:

Genkit позволяСт ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ИИ-Π»ΠΎΠ³ΠΈΠΊΡƒ Π² flows - строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ HTTP-эндпоинты. Π‘Ρ…Π΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π½Π° Dart ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ Π½Π° сСрвСрС ΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.


@Schema()
abstract class $TripRequest {
String get destination;
int get days;
}


Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ ΡΠΊΠ²ΠΎΠ·Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ бэкСндом ΠΈ Flutter-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.


Π“Π΄Π΅ выполняСтся ΠΊΠΎΠ΄:

ИИ-Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π½Π° стандартном Dart, поэтому Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ:

πŸ”ΉΠΠ°ΠΏΡ€ΡΠΌΡƒΡŽ Π²ΠΎ Flutter: для быстрого прототипирования ΠΈΠ»ΠΈ сцСнариСв, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ свой ΠΊΠ»ΡŽΡ‡ API.

πŸ”ΉΠΠ° Dart-сСрвСрС: для слоТных flows ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΌΠΏΡ‚ΠΎΠ². Flutter Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· defineRemoteAction.

πŸ”ΉΠ’ΠΎ Flutter с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ модСлями: ИИ-Π»ΠΎΠ³ΠΈΠΊΠ° остаСтся Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½ΠΎ запросы ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ΄ΡƒΡ‚ Ρ‡Π΅Ρ€Π΅Π· Π»Π΅Π³ΠΊΠΈΠΉ Genkit-бэкСнд, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡ΠΈ API ΠΈ провСряСт Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ.


Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ°:

Genkit Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Developer UI для тСстирования flows, экспСримСнтов с ΠΏΡ€ΠΎΠΌΠΏΡ‚Π°ΠΌΠΈ ΠΈ пошаговой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ трассировок выполнСния.


genkit start -- dart run server/bin/server.dart



АгСнтскиС сцСнарии:

Π‘ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° preview Genkit Dart Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΡΡ возмоТностями для ΠΌΠ½ΠΎΠ³ΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Ρ… агСнтских Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов: прСрывания с участиСм Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, middleware для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΌΠΏΡ‚Π°ΠΌΠΈ, Ρ‚Π΅Π»Π΅ΠΌΠ΅Ρ‚Ρ€ΠΈΠ΅ΠΉ Π½Π° ΠΏΡ€ΠΎΠ΄Π΅.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ модСлям Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Dart-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ выполнСния дСйствий. Когда дСйствиС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ подтвСрТдСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, инструмСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ, Π²Π΅Ρ€Π½ΡƒΠ² .interrupt(...) вмСсто .response(...). Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ модСль Π½Π΅ ΠΎΠ±ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ.

Middleware ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² Ρ†ΠΈΠΊΠ» Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ инструмСнты ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ запросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹. МоТно ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ возмоТности Π²Ρ€ΠΎΠ΄Π΅ автоматичСских ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΏΡ€Π°Π²ΠΈΠ» подтвСрТдСния инструмСнтов.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Genkit Dart 1.0 - это ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ инструмСнт для построСния ИИ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΈ Π°Π³Π΅Π½Ρ‚ΠΎΠ² Π½Π° Dart. Π•Π΄ΠΈΠ½Ρ‹ΠΉ API для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, сквозная Ρ‚ΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° агСнтских сцСнариСв ΠΈ Ρ‚Π΅Π»Π΅ΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ΄Π΅.

РаньшС для ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки ΠΈΠ»ΠΈ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ всС Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ИИ-Π»ΠΎΠ³ΠΈΠΊΠ° остаСтся Π² Π·Π½Π°ΠΊΠΎΠΌΠΎΠΉ экосистСмС Dart ΠΈ Flutter. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, тСстированиС ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
342005
Video
πŸ‘£ Как Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ИИ-Π°Π³Π΅Π½Ρ‚Π° Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вычислСния Dart-ΠΊΠΎΠ΄Ρƒ

Π’ Flutter с GenUI Π°Π³Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ экраны Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. Но Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅ΠΌΡƒ: это Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΏΠΎ сСти ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠ΅Π½Π΅Π΅ прСдсказуСмым. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ A2UI ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Dart-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π΅Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Ρ‚ΠΈΠΏ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. АгСнт Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅Π΅ ΠΈΠ· сообщСния, Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСт ΠΊΠΎΠ΄ Π½Π° устройствС.


Π§Ρ‚ΠΎ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ клиСнтскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ простыС матСматичСскиС запросы Π² LLM нСэффСктивно. Π­Ρ‚ΠΎ добавляСт Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π° ΡΠ΅Ρ‚ΡŒ ΠΈ расходуСт лишниС Ρ‚ΠΎΠΊΠ΅Π½Ρ‹. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π°Π³Π΅Π½Ρ‚Ρƒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ значСния локально Π½Π° устройствС: ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π½Π°Π»ΠΎΠ³ΠΈ, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†.

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€ΡƒΠ΄Π° выглядит Ρ‚Π°ΠΊ. Flutter-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ доступныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ GenUI: сообщаСт Π°Π³Π΅Π½Ρ‚Ρƒ, ΠΊΠ°ΠΊΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ½ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ ΠΈ Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚. АгСнт Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΈ Π³Π΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΈ отправляСт A2UI-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ выполняСт Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ локально ΠΈ сразу ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π­Ρ‚ΠΎ избавляСт ΠΎΡ‚ Π»ΠΈΡˆΠ½ΠΈΡ… сСтСвых запросов, обСспСчиваСт Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ сниТаСт расход Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ².


Как устроСна клиСнтская функция:

Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½Ρ‹Π΅ клиСнтскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ SynchronousClientFunction. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для расчСта стоимости ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Π°:


class CalculateCostFunction extends SynchronousClientFunction {
const CalculateCostFunction();

@override
String get name => 'calculateCost';

@override
String get description =>
'Calculates the cost for a certain quantity of an ingredient. '
'Returns a formatted dollar string (for example, \$4.50).';

@override
ClientFunctionReturnType get returnType => ClientFunctionReturnType.string;

@override
Schema get argumentSchema => S.object(
properties: {
'ingredient_id': S.string(description: 'The ID of the ingredient.'),
'quantity': S.number(description: 'The quantity of the ingredient.'),
},
required: ['ingredient_id', 'quantity'],
);

@override
Object? executeSync(JsonMap args, ExecutionContext context) {
final ingredientId = args['ingredient_id'].toString();
final quantity = num.tryParse(args['quantity'].toString())?.toDouble();

if (quantity == null || quantity < 1) {
return '\$0.00';
}

final cost = CostService().fetchPrice(ingredientId, quantity);
return '\$${cost.toStringAsFixed(2)}';
}
}


ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹:

πŸ”Ήname: ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π°Π³Π΅Π½Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² A2UI-сообщСниях.

πŸ”Ήdescription: ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ объяснСниС для LLM, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π·Π½Π°Π», ΠΊΠΎΠ³Π΄Π° ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ.

πŸ”ΉreturnType: Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС строка.

πŸ”ΉargumentSchema: схСма, которая сообщаСт LLM, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Π° ΠΈ количСство.

πŸ”ΉexecuteSync: ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся Π½Π° устройствС. Он парсит Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвис ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ строку.

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ‚ΠΎΡ‚, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для элСмСнтов ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° UI-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Оба ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π°Π³Π΅Π½Ρ‚Ρƒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ для рассуТдСний ΠΈ Dart-Π»ΠΎΠ³ΠΈΠΊΡƒ, которая Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅: создаСт Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΈΠ»ΠΈ вычисляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.


РСгистрация Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅:

Π§Ρ‚ΠΎΠ±Ρ‹ Π°Π³Π΅Π½Ρ‚ Π·Π½Π°Π» ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ½Π° рСгистрируСтся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ GenUI:


final commisCatalog = Catalog(
[
cateringJobItem,
recipeLineCatalogItem,
ingredientLineCatalogItem,
navigationCardCatalogItem,
simpleCardCatalogItem,
],
functions: [
CalculateCostFunction(),
],
catalogId: 'commis_catalog',
);


ΠŸΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСссии PromptBuilder ΠΈΠ· genui инспСктируСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ автоматичСски ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ объявлСния клиСнтских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, добавляя ΠΈΡ… ΠΈΠΌΠ΅Π½Π°, описания ΠΈ схСмы Π² систСмный ΠΏΡ€ΠΎΠΌΠΏΡ‚ для Gemini.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ A2UI ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ вынСсти вычислСния ΠΈΠ· ИИ-Π°Π³Π΅Π½Ρ‚Π° Π² Dart-ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ сниТаСт Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, экономит Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прСдсказуСмым.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
447005
Video
πŸ‘£ Как Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Unity ΠΈΠ³Ρ€Ρƒ Π²ΠΎ Flutter ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Flutter ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ справляСтся с интСрфСйсом, Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ прилоТСния. Но ΠΎΠ½ Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ Π² 3D, Ρ„ΠΈΠ·ΠΈΠΊΡƒ, AR ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π—Π°Ρ‚ΠΎ это ΡƒΠΌΠ΅Π΅Ρ‚ Unity. МногиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ хотят ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ±Π° инструмСнта Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ: Flutter-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ ΠΈ Unity-сцСну Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π΅.

Автор ΡΡ‚Π°Ρ‚ΡŒΠΈ дСлится соврСмСнным способом Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. РаньшС это Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ экспорта Unity-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΏΡ€Π°Π²ΠΊΠΈ settings.gradle, написания method channels, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ UnityPlayerActivity ΠΈ повторСния всСго этого для iOS. Π Π°Π±ΠΎΡ‚Π°Π»ΠΎ, Π½ΠΎ Π±Ρ‹Π»ΠΎ Ρ…Ρ€ΡƒΠΏΠΊΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Ρ‹Π²Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Unity-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.


Π§Ρ‚ΠΎ прСдлагаСтся:

Автор ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Game Framework - ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊ flutter_unity_widget ΠΎΡ‚ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π­Ρ‚ΠΎ CLI ΠΈ SDK, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ экспорт ΠΈ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ Unity-Π±ΠΈΠ»Π΄Π° ΠΏΠΎΠ΄ ΠΎΠ±Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Unity-сцСна прСвращаСтся Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Flutter-Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ с типобСзопасным ΠΎΠ±ΠΌΠ΅Π½ΠΎΠΌ сообщСниями Π² ΠΎΠ±Π΅ стороны.


Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

ΠŸΡ€ΠΎΡ†Π΅ΡΡ состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… шагов:

Установка CLI Ρ‡Π΅Ρ€Π΅Π· Homebrew:


brew tap xraph/tap
brew install game-cli

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² pubspec.yaml:


gameframework: ^0.0.3
gameframework_unity: ^0.0.4

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π² main():


UnityEnginePlugin.initialize();

Экспорт Unity-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

game export unity --platform android,ios

Бинхронизация с Flutter-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ:

game sync unity --platform android,ios

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° сама ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Gradle-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Android ΠΈ iOS-framework, Π±Π΅Π· Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ рСдактирования settings.gradle ΠΈ шаблонного ΠΊΠΎΠ΄Π° method channels.


Unity ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚:

ПослС синхронизации Unity-сцСна становится ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ:


GameWidget(
engineType: GameEngineType.unity,
onEngineCreated: (controller) => _controller = controller,
onMessage: _onMessage,
config: const GameEngineConfig(
fullscreen: false,
runImmediately: true,
unloadOnDispose: true,
),
)


ОбмСн сообщСниями:

Flutter ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Unity:


await _controller?.sendMessage('GameManager', 'SetSpeed', '2.5');
await _controller?.sendJsonMessage('GameManager', 'UpdateScore', {
'score': 100,
'stars': 3,
});

Unity ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· нСбольшой мост Π½Π° C#. Π’ Flutter эти сообщСния приходят Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ onMessage.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Unity ΠΈ Flutter пСрСстала Π±Ρ‹Ρ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ с Gradle ΠΈ method channels. Game Framework Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ экспорт, ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ сообщСниями. Unity-сцСна становится ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² любоС Flutter-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ бСсплатный ΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ 3D, Ρ„ΠΈΠ·ΠΈΠΊΡƒ ΠΈΠ»ΠΈ AR Π² своС Flutter-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, стоит ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° этот инструмСнт.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
496006
Photo1/2
πŸ‘¨β€πŸ’» Π“ΠΎΠ½ΠΊΠ° Π·Π° ΡΠ°ΠΌΡƒΡŽ ΠΌΠΎΡ‰Π½ΡƒΡŽ ИИ-модСль ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ?

ПослСдниС нСсколько Π»Π΅Ρ‚ Π·Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ИИ Π±Ρ‹Π»ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π·Π° спортивной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ. OpenAI выпускала GPT-4, Google ΠΎΡ‚Π²Π΅Ρ‡Π°Π»Π° Gemini, Anthropic ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»Π° Π½ΠΎΠ²ΡƒΡŽ Claude, Π·Π°Ρ‚Π΅ΠΌ начинался ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΡ€ΡƒΠ³. КаТдая компания приносила Π½Π°Π±ΠΎΡ€ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ² ΠΈ объясняла, Π³Π΄Π΅ Π΅Π΅ модСль Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ пСрвая.

Π’ 2026 Π³ΠΎΠ΄Ρƒ эта Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π°Ρ‡Π°Π»Π° Π»ΠΎΠΌΠ°Ρ‚ΡŒΡΡ. НС ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ пСрСстали ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΌΠΎΡ‰Π½Π΅Π΅. Наоборот, 1 сСнтября Anthropic выпустила Claude Fable 5.1 - Π½ΠΎΠ²ΡƒΡŽ Ρ‚ΠΎΠΏΠΎΠ²ΡƒΡŽ модСль для программирования ΠΈ слоТной ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΠ»ΡŒΠ½ΡƒΡŽ модСль большС Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² захотят ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π·Π°Π΄Π°Ρ‡.


Π§Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ†ΠΈΡ„Ρ€Ρ‹:

Financial Times ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Fable 5 Π²Ρ‹ΡˆΠ»Π° 9 июня 2026 Π³ΠΎΠ΄Π° ΠΊΠ°ΠΊ ΠΎΠ΄Π½Π° ΠΈΠ· самых ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Anthropic. Бпустя ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π΄Π²Π° мСсяца Π½Π° Π½Π΅Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΎΠΊΠΎΠ»ΠΎ 11% расходов Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ Anthropic срСди ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

Π­Ρ‚ΠΎ Π½Π΅ 11% всСй Π²Ρ‹Ρ€ΡƒΡ‡ΠΊΠΈ Anthropic, Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… расходов. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, доступ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Ρ‹Π» ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ 12 июня ΠΈΠ·-Π·Π° амСриканских экспортных ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, Π° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· восстановили 1 июля. Π¦ΠΈΡ„Ρ€Π° Π½Π΅ идСальна. Но сама тСндСнция интСрСснСС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… 11%. Компании всС Ρ‡Π°Ρ‰Π΅ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ссли Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ качСство frontier-ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ влияСт Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.


Π§Ρ‚ΠΎ измСнилось ΠΊ 2026 Π³ΠΎΠ΄Ρƒ:

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ классами ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ стала ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ. Claude Sonnet 5 стоит $2 Π·Π° ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΈ $10 Π·Π° ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². Fable 5.1 - $10 ΠΈ $50 соотвСтствСнно.

Fable Π½ΡƒΠΆΠ½Π° Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСняСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: слоТноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ агСнтная Ρ€Π°Π±ΠΎΡ‚Π°, Π½Π°ΡƒΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. Но ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ для классификации ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ извлСчСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² экономичСски бСссмыслСнно, Ссли Sonnet справляСтся достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Π’ Ρ€Π΅Π»ΠΈΠ·Π΅ Fable 5.1 Anthropic рассказываСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… Π½Π° тСстах, Π½ΠΎ ΠΈ ΠΎ сниТСнии стоимости cache reads Π½Π° 75%. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Ρ€Π΅Π»ΠΈΠ· самой ΠΌΠΎΡ‰Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ приходится ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· экономику Π΅Π΅ эксплуатации.


На смСну Π»ΠΈΠ΄Π΅Ρ€Π±ΠΎΡ€Π΄Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ оркСстрация:

Perplexity Π΄Π΅Π»Π°Π΅Ρ‚ ставку Π½Π° multi-model orchestration. Π Π°Π·Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ систСмы ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ‚Π΅ части Ρ€Π°Π±ΠΎΡ‚Ρ‹, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… подходят Π»ΡƒΡ‡ΡˆΠ΅. Π’ 2026 Π³ΠΎΠ΄Ρƒ Perplexity Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ Model Council - ΠΎΠ΄ΠΈΠ½ запрос ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ нСскольким модСлям, послС Ρ‡Π΅Π³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ слой сравниваСт ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Для ΠΏΡ€ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ оркСстрация становится Π²Π°ΠΆΠ½Π΅Π΅, Ρ‡Π΅ΠΌ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ. НуТно Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ запросы Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π΄ΠΎΡ€ΠΎΠ³ΠΎΠ³ΠΎ inference, ΠΊΠΎΠ³Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ reasoning, сколько контСкста ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ кСш, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°.

Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ оркСстрация ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ качСство ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° сильнСС, Ρ‡Π΅ΠΌ очСрСдная Π·Π°ΠΌΠ΅Π½Π° ΠΎΠ΄Π½ΠΎΠΉ frontier-ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ.


Π’Π°ΠΊ Π³ΠΎΠ½ΠΊΠ° Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚:

На ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Π½Π΅Ρ‚. OpenAI, Google, Anthropic, xAI, DeepSeek ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Frontier ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π²Π°ΠΆΠ΅Π½: ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΌ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ становятся дСшСвлС ΠΈ пСрСходят Π² массовыС ΠΌΠΎΠ΄Π΅Π»ΠΈ.

ЗаканчиваСтся другая Π³ΠΎΠ½ΠΊΠ°: ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ максимально ΠΌΠΎΡ‰Π½ΡƒΡŽ модСль ΠΊΠ°ΠΊ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° всС Π·Π°Π΄Π°Ρ‡ΠΈ.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

К 2026 Π³ΠΎΠ΄Ρƒ Ρ€Ρ‹Π½ΠΎΠΊ раздробился. Π•ΡΡ‚ΡŒ быстрыС ΠΌΠΎΠ΄Π΅Π»ΠΈ, reasoning-ΠΌΠΎΠ΄Π΅Π»ΠΈ, систСмы с ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ контСкстом, open-weight Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, спСциализированныС ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ.

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ Π»ΠΈΠ΄Π΅Ρ€Π±ΠΎΡ€Π΄Π΅ всС Ρ…ΡƒΠΆΠ΅ описываСт Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Для ΠΏΡ€ΠΎΠ΄Π° Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π²Π°ΠΆΠ½Π΅Π΅ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ качСства, стоимости ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ.

ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ остаСтся Ρ†Π΅Π½Π½Ρ‹ΠΌ рСсурсом, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС большС Π½Π΅Ρ‚ смысла. Вопрос смСстился с «какая модСль Π»ΡƒΡ‡ΡˆΠ΅?Β» Π½Π° «какая минимальная модСль достаточно Ρ…ΠΎΡ€ΠΎΡˆΠ° для этой Π·Π°Π΄Π°Ρ‡ΠΈ?Β». И это, вСроятно, Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΈΡ‚ΠΎΠ³ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…Π»Π΅Ρ‚Π½Π΅ΠΉ Π³ΠΎΠ½ΠΊΠΈ.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ ΠšΠΎΡ‚ ДСнисова
304005
Video
πŸ‘£ Как async* ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π² Dart

Π’ Dart Π΅ΡΡ‚ΡŒ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅Π΄ΠΎΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚. Π­Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ async*. Он позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊ ΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π‘Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… классов, Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ управлСния подписками ΠΈ бСсконСчных Ρ†ΠΈΠΊΠ»ΠΎΠ² с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ошибок.


Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹:

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ - это Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ частям, Π° Π½Π΅ всС сразу. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ врСмя выполнСния. Но ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ синхронныС. А Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π½ΡƒΠΆΠ½Π° Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ?

Π—Π΄Π΅ΡΡŒ ΠΈ вступаСт async*. ВмСсто Iterable такая функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Stream. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π΅ доступны всС возмоТности Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° плюс await.


Как это выглядит Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅:

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ числа с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ:


Stream<int> generateNumbers() async* {
for (var i = 0; i < 5; i++) {
await Future.delayed(Duration(seconds: 1));
yield i;
}
}


ВсС просто. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Π΅ конструкции: Ρ†ΠΈΠΊΠ», await, yield. Никаких StreamController, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… подписок, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ€ΡƒΡ‡Π½Ρ‹Ρ… Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΉ.


Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово yield:

yield - это ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ асинхронного Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°. Когда функция ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π° ΠΊΠ°ΠΊ async*, ΠΎΠ½Π° Π½Π΅ выполняСтся Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ сразу. ВмСсто этого ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Stream. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ yield, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ отправляСтся Π² ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ функция приостанавливаСтся Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ запроса.

ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами: yield - это ΠΊΠ°ΠΊ return, Π½ΠΎ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π° ΠΎΡ‚Π΄Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΆΠ΄Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° попросят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅. Ѐункция ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ мСста, Π° Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π·Π°Π½ΠΎΠ²ΠΎ.

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ yield*, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ ΠΈ ΠΎΡ‚Π΄Π°Π΅Ρ‚ всС Π΅Π³ΠΎ значСния подряд. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько источников Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

async* - это Π½Π΅ просто синтаксичСский сахар. Π­Ρ‚ΠΎ способ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… чисто ΠΈ прСдсказуСмо. Он экономит ΠΊΠΎΠ΄, ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ Π±ΠΎΠ»Π΅Π΅ явной. Π›ΠΎΠ³ΠΈΠΊΠ° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… находится Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС ΠΈ выглядит ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ВсС, Ρ‡Ρ‚ΠΎ связано с созданиСм ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ошибок ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ, Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя язык.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
5930011
Video
πŸ‘£ ВлияСт Π»ΠΈ Π²Ρ‹Π±ΠΎΡ€ state management Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Flutter?

МоТно Π»ΠΈ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Flutter-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, просто Π²Ρ‹Π±Ρ€Π°Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ state management? Автор Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Ρ€Π΅ΡˆΠΈΠ» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это Π½Π΅ Π½Π° искусствСнном тСстС, Π° Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ оказался Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ.


Как ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈ тСстированиС:

Для экспСримСнта использовалось ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ Android-устройство с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, CPU/GPU scaling ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ². ВСстированиС длилось ΠΏΡΡ‚ΡŒ Π΄Π½Π΅ΠΉ, Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ 2100 испытаний ΠΈ 300 Ρ€Π°ΡƒΠ½Π΄ΠΎΠ² Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Π»ΠΈΡΡŒ сСмь ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ²: setState ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ChangeNotifier + Provider, Freezed + Provider + ValueNotifier, Bloc, Riverpod, GetX ΠΈ Signals.

Π˜Π·ΠΌΠ΅Ρ€ΡΠ»ΠΎΡΡŒ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго врСмя build, Π° Π½Π΅ искусствСнная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ измСнСния состояния.


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

Provider + ChangeNotifier практичСски Π½Π΅ отличаСтся ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ setState, ΠΊΠ°ΠΊ ΠΈ Freezed + Provider + ValueNotifier.

GetX, Riverpod ΠΈ Signals Π΄Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ +5-6 микросСкунд ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сборки. Π—Π²ΡƒΡ‡ΠΈΡ‚ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ для Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ°, Π½ΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ это практичСски Π½ΠΈΡ‡Π΅Π³ΠΎ.

ΠŸΡ€ΠΈ 120 Π“Ρ† Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π° составляСт ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 8333 микросСкунды. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ 6 микросСкунд - это ΠΎΠΊΠΎΠ»ΠΎ 0,07% Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π° ΠΊΠ°Π΄Ρ€Π°. Π Π°Π·Π½ΠΈΡ†Π° находится Π΄Π°Π»Π΅ΠΊΠΎ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ практичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.


Π§Ρ‚ΠΎ насчСт Bloc:

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Π΅Π΅ всСго оказался Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Bloc. Π’ тСстС ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ срСднСС врСмя сборки ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° 21 микросСкунду. Π­Ρ‚ΠΎ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½ΠΈΡ‡Ρ‚ΠΎΠΆΠ½ΠΎ малая Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° (0,263% ΠΏΡ€ΠΈ частотС обновлСния экрана 120 Π“Ρ†), Π½ΠΎ, Ссли Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ, это ΡƒΠΆΠ΅ Ρ‚ΠΎΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ тСорСтичСски ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ рСализация Π½Π° Bloc ΠΎΡ‚Π»ΠΈΡ‡Π°Π»Π°ΡΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ. Π’ Π½Π΅ΠΉ Π±Ρ‹Π»ΠΎ большС ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ части иСрархия Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Π»Π°ΡΡŒ ΠΈΠ½Π°Ρ‡Π΅. И здСсь всплываСт главная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Ρ… Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²: ΠΌΡ‹ сравниваСм Π½Π΅ state management, Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ прилоТСния.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

На основании этого экспСримСнта нСльзя чСстно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Riverpod быстрСС Provider ΠΈΠ»ΠΈ Bloc быстрСС GetX. Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ популярными state management Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ оказалась Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ малСнькой, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ практичСски бСссмыслСнно.

Π“ΠΎΡ€Π°Π·Π΄ΠΎ Π²Π°ΠΆΠ½Π΅Π΅, сколько Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² обновляСтся, насколько большая Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² пСрСсобираСтся, Ρ‡Ρ‚ΠΎ выполняСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° build, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ расчСт располоТСния ΠΈ отрисовка, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅.

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Π² Ρ‚ΠΎΠΌ, Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π²Ρ‹ Riverpod ΠΈΠ»ΠΈ Provider. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ заставляСтС Flutter ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ.

Π’Ρ‹Π±ΠΎΡ€ state management Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° удобствС, читаСмости ΠΈ поддСрТиваСмости ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ здСсь - Π½Π΅ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ. Если вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΡ‡Ρ‚ΠΈ навСрняка Π½Π΅ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, Π° Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° иСрархия Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ сколько Π»ΠΈΡˆΠ½ΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² происходит.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
699007
Video
πŸ‘£ Плагин Flutter для VS Code обновился Π΄ΠΎ вСрсии 3.142.0

Π’Ρ‹ΡˆΠ»ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Π° Flutter для VS Code. ИзмСнСний Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅: deep-link Π² DevTools Π²Π΅Ρ€Π½ΡƒΠ»ΠΈΡΡŒ, Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ имя, Π° ΠΌΠ΅Π»ΠΊΠΈΠ΅ исправлСния Π΄Π΅Π»Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‡ΡƒΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π΅Π΅.


Deep-link Π² DevTools Π²Π΅Ρ€Π½ΡƒΠ»ΠΈΡΡŒ:

Плагин снова ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ deep-link Π² DevTools. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибок Π²Ρ€ΠΎΠ΄Π΅ Overflow появляСтся ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, которая ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½ΡƒΡŽ страницу DevTools ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΌΡƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρƒ ΠΈΠ»ΠΈ мСсту Π² ΠΊΠΎΠ΄Π΅.

Π­Ρ‚ΠΎ экономит врСмя: Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² Widget Inspector. БистСма сама подсказываСт, Π³Π΄Π΅ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ.


Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ имя:

Π‘ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсии Flutter Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ Β«Add a name to the constructorΒ» ΠΈ Β«Add a prefix to the importΒ» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ имя Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. РаньшС ΠΏΠ»Π°Π³ΠΈΠ½ подставлял имя, сгСнСрированноС сСрвСром. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ввСсти своС.

Π’Π°ΠΊΠΆΠ΅ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… вСрсиях SDK появится валидация ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅. Ошибки Π±ΡƒΠ΄ΡƒΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π° прСдупрСТдСния - Π½Π΅Ρ‚. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½.


МСлкиС исправлСния:

πŸ”ΉΠ£Π±Ρ€Π°Π»ΠΈ тСкст Β«Starting debug session…», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠ³ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ слишком Π΄ΠΎΠ»Π³ΠΎ ΠΏΡ€ΠΈ запускС тСстов Π±Π΅Π· Π²Ρ‹Π²ΠΎΠ΄Π°. Π­Ρ‚ΠΎ ΠΌΠ΅Π»ΠΎΡ‡ΡŒ, Π½ΠΎ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Π»Π°.

πŸ”ΉΠ£Π΄Π°Π»ΠΈΠ»ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ для ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Copilot, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡƒΡ‚ΠΈΡ€ΠΎΠ²Π°Π» ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния. Copilot выпустил исправлСниС Π΅Ρ‰Π΅ Π² июнС, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΎΠ±Ρ…ΠΎΠ΄Π΅ ΠΎΡ‚ΠΏΠ°Π»Π°.

πŸ”ΉΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Firebase Studio ΡƒΠ΄Π°Π»Π΅Π½Π° Π² связи с Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ сСрвиса.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

ОбновлСниС ΠΏΠ»Π°Π³ΠΈΠ½Π° - это Π½Π°Π±ΠΎΡ€ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Ρ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ. Deep-link Π² DevTools Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ удобство ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ Overflow ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ с запросом ΠΈΠΌΠ΅Π½ΠΈ Π΄Π°ΡŽΡ‚ большС контроля. МСлкиС исправлСния Π΄Π΅Π»Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π΅Π΅.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
538008
Photo1/2
πŸ‘£ АрхитСкторы, тСстировщики ΠΈ ΠΊΠΎΠ΄Π΅Ρ€Ρ‹. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с ИИ-Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ Π·Π° послСдний Π³ΠΎΠ΄ сдСлала большой шаг Π²ΠΏΠ΅Ρ€Π΅Π΄. Но ΠΌΠ½ΠΎΠ³ΠΈΠ΅ всС Π΅Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Π³Π΅Π½Ρ‚Π° для всСго: Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, тСстов, ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. На ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡Π°Ρ… это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Когда ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ становится слоТнСС, Π°Π³Π΅Π½Ρ‚ тСряСт контСкст, Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π³Π°Π»Π»ΡŽΡ†ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ошибки.

НСдавно Π² Π±Π»ΠΎΠ³Π΅ Flutter Π²Ρ‹ΡˆΠ»Π° ΡΡ‚Π°Ρ‚ΡŒΡ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π°Π²Ρ‚ΠΎΡ€ экспСримСнтируСт с ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ. ВмСсто ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π³Π΅Π½Ρ‚Π° ΠΎΠ½ создал ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… спСциализированных Ρ€ΠΎΠ»Π΅ΠΉ: Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€, тСстировщик, ΠΊΠΎΠ΄Π΅Ρ€ ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€. Π—Π°Π΄Π°Ρ‡Π° Π±Ρ‹Π»Π° Π½Π΅ простая: ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΡƒΡŽ Python-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ python-statemachine Π² статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Dart-ΠΏΠ°ΠΊΠ΅Ρ‚ Π±Π΅Π· использования рСфлСксии (dart:mirrors Π²ΠΎ Flutter Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹).


Как устроСна ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°:

Основа эффСктивной Π°Π³Π΅Π½Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ - Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ€ΠΎΠ»ΠΈ с ограничСниями Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π°Π³Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ.

Автор создал ΠΎΠ±Ρ‰ΠΈΠΉ Π²ΠΎΡ€ΠΊΡ„Π»ΠΎΡƒ-скилл (tdd-dart-workflow) с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ TDD ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€ΠΎΠ»Π΅Π²Ρ‹Ρ… скилла:

πŸ”ΉΠΡ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€:Β Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ исходный ΠΊΠΎΠ΄, создаСт architecture_blueprint.md ΠΈ спСцификации ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² specs/. НС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² lib/, test/ ΠΈ example/.

πŸ”ΉΠ’Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ:Β ΠΏΠΈΡˆΠ΅Ρ‚ ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ тСсты Π² test/ Π½Π° основС спСцификаций Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π°. НС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ lib/ ΠΈ specs/.

πŸ”ΉΠšΠΎΠ΄Π΅Ρ€: создаСт скСлСты ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ Π² lib/src/, Ρ‡Ρ‚ΠΎΠ±Ρ‹ тСсты ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΈ. НС ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ test/ ΠΈ specs/.

πŸ”ΉΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€: управляСт Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ Π°Π³Π΅Π½Ρ‚ΠΎΠΌ. ΠžΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, запуск dart analyze ΠΈ dart test, Π΄Π΅Π»Π΅Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ суб-Π°Π³Π΅Π½Ρ‚Π°ΠΌ.

Π‘Ρ‚Ρ€ΠΎΠ³ΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ»Π΅ΠΉ Π½Π΅ Π΄Π°Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π°Π³Π΅Π½Ρ‚Ρƒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ тСсты ΠΈ ΠΊΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ. Π­Ρ‚ΠΎ создаСт ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΡ€Π²ΠΎΠ»: история ΠΏΡ€ΠΎΠ± ΠΈ ошибок суб-Π°Π³Π΅Π½Ρ‚Π° отбрасываСтся послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Π° остаСтся чистым, Π±Π΅Π· пСрСполнСния Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ.

Для прСдотвращСния Π³ΠΎΠ½ΠΎΠΊ ΠΈ Π½Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² доступ ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½:

πŸ”ΉΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€: Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Π²Π΅Π·Π΄Π΅, Π½ΠΎ Π±Π΅Π· прямых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ΄Π°.

πŸ”ΉΠΡ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€: Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π²Π΅Π·Π΄Π΅, запись Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² specs/ ΠΈ skills/.

πŸ”ΉΠ’Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ: Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π²Π΅Π·Π΄Π΅, запись Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² test/ ΠΈ example/.

πŸ”ΉΠšΠΎΠ΄Π΅Ρ€: Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π²Π΅Π·Π΄Π΅, запись Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² lib/ ΠΈ example/.


БтатичСская типизация ΠΈ TDD:

Π’ динамичСских языках TDD начинаСтся с ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ тСста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выбрасываСт Ρ€Π°Π½Ρ‚Π°ΠΉΠΌ-ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π’ статичСских языках тСст для Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ скомпилируСтся, ΠΈ тСст-Ρ€Π°Π½Π½Π΅Ρ€ Π΄Π°ΠΆΠ΅ Π½Π΅ запустится.

РСшСниС: сначала тСстировщик ΠΏΠΈΡˆΠ΅Ρ‚ тСсты ΠΏΠΎ спСцификации. Π—Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠ΄Π΅Ρ€ создаСт скСлСты Π² lib/src/ с Π·Π°Π³Π»ΡƒΡˆΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ dummy-значСния ΠΈΠ»ΠΈ Π±Ρ€ΠΎΡΠ°ΡŽΡ‚ UnimplementedError. Когда скСлСт удовлСтворяСт компилятору, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ запускаСт dart analyze && dart test ΠΈ провСряСт, Ρ‡Ρ‚ΠΎ тСсты ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡΡŽΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ ΠΎΡ‚ постоянных тСстовых ΡƒΡ‚ΠΈΠ»ΠΈΡ‚.


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Dart-ΠΏΠ°ΠΊΠ΅Ρ‚ state_machine сохранил ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Python-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠšΠΎΠ΄Π΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» fluent-Π±ΠΈΠ»Π΄Π΅Ρ€Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Dart-синтаксиса.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

ΠœΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ€ΠΎΠ»Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для Flutter-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Он ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΡŽ контСкста, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π³Π°Π»Π»ΡŽΡ†ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ качСство ΠΊΠΎΠ΄Π°. ΠšΠΎΠ³Π½ΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΡ€Π²ΠΎΠ» позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ чистоту контСкста ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Π°, отбрасывая ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ суб-Π°Π³Π΅Π½Ρ‚ΠΎΠ² послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡.

Но ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. НСобходимы Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅ Ρ€ΠΎΠ»ΠΈ, ограничСния Π½Π° запись ΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ процСссы. ВрСбуСтся постоянная Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° скиллов ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ возникновСния Π½ΠΎΠ²Ρ‹Ρ… ситуаций.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π°Π²Ρ‚ΠΎΡ€ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π΅ просто Dart-ΠΏΠ°ΠΊΠ΅Ρ‚, Π° Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² для ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ВмСсто ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Π³Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пытаСтся Π΄Π΅Π»Π°Ρ‚ΡŒ всС, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… спСциализированных Π°Π³Π΅Π½Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эффСктивнСС. И это, вСроятно, Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ Flutter-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с ИИ.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
1,420007
πŸ‘£ Как ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Flutter-прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ассСтов

Π Π°Π·ΠΌΠ΅Ρ€ установочного Ρ„Π°ΠΉΠ»Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° ΠΊΠΎΠ½Π²Π΅Ρ€ΡΠΈΡŽ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ Π»ΡŽΠ±ΡΡ‚ ΠΆΠ΄Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄ΠΊΠΎ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ большиС прилоТСния, Ссли Π΅ΡΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° помСньшС. ОсобСнно это ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для Android, Π½ΠΎ ΠΈ для iOS Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚ΠΎΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π‘ΠΎΠ»ΡŒΡˆΠ΅ всСго мСста Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ассСты: изобраТСния, ΠΈΠΊΠΎΠ½ΠΊΠΈ, ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹. И ΠΈΠΌΠ΅Π½Π½ΠΎ здСсь ΠΏΡ€ΠΎΡ‰Π΅ всСго ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Ρ‹ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ качСства.


Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ:

Π‘Π°ΠΌΡ‹ΠΉ эффСктивный способ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ WebP. Он Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Google, Π΄Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅Π΅ сТатиС, Ρ‡Π΅ΠΌ PNG ΠΈ JPEG, ΠΈ ΠΏΡ€ΠΈ этом ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π·Π°ΠΌΠ΅Π½Π° PNG Π½Π° WebP ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π² Π΄Π²Π°-Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° Π±Π΅Π· Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ качСства.

Но Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ - это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π΄Π΅Π»Π°. Вторая - Ρ€Π°Π·ΠΌΠ΅Ρ€ самого изобраТСния. Если ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° отобраТаСтся Π² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅ 100x100 Ρ‚ΠΎΡ‡Π΅ΠΊ, Π° Π²Ρ‹ ΠΊΠ»Π°Π΄Π΅Ρ‚Π΅ Π² ассСты ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 2000x2000 пиксСлСй, Π²Ρ‹ добавляСтС Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ дСсятки Π»ΠΈΡˆΠ½ΠΈΡ… ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚. На Π±ΠΎΠ»ΡŒΡˆΠΈΡ… экранах Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. Достаточно Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ плотности экрана: Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° коэффициСнт плотности (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ большС 4). ВсС, Ρ‡Ρ‚ΠΎ большС - просто лишний вСс.


Иконки:

Π‘ ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌΠΈ всС слоТнСС. Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ основных способа Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SVG. Π­Ρ‚ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΎΠ½ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ качСства. Но Π²ΠΎ Flutter ΠΎΠ½ Π½Π΅ поддСрТиваСтся ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ - Π½ΡƒΠΆΠ½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая добавляСт лишнюю Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ Π½Π΅ всСгда Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ - ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SVG Π²ΠΎ Flutter-Π²Π΅ΠΊΡ‚ΠΎΡ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Π΅Ρ€Π΅Π· https://pub.dev/packages/flutter_svg ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΡƒΠ»Ρ‹). Π­Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ Ρ‚ΡΠ½ΡƒΡ‚ΡŒ SVG-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π½ΠΎ ΠΈΠΊΠΎΠ½ΠΊΠΈ всС Ρ€Π°Π²Π½ΠΎ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ врСмя отрисовки.

Π’Ρ€Π΅Ρ‚ΠΈΠΉ - Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π² ΡˆΡ€ΠΈΡ„Ρ‚Π΅. Π­Ρ‚ΠΎ самый эффСктивный способ. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ IconData ΠΈ ΠΏΡ€ΠΈ сборкС прилоТСния Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ автоматичСски ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ. ΠœΠΈΠ½ΡƒΡ - Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ΠΈΠΊΠΎΠ½ΠΎΠΊ, ΠΈ слоТныС изобраТСния Π½Π΅ всСгда получаСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡˆΡ€ΠΈΡ„Ρ‚.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹. Для простых ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚. Для слоТных Ρ†Π²Π΅Ρ‚Π½Ρ‹Ρ… - Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. А SVG Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ для ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ случаСв, ΠΊΠΎΠ³Π΄Π° Π±Π΅Π· Π½Π΅Π³ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ.


Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ:

Помимо ассСтов, Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Π»ΠΈΡΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹. НапримСр Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Если Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ Ρ‚ΡΠΆΠ΅Π»ΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π΄ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, стоит ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.


πŸ”— https://appsell.su/blog/den-apps-1/flutter-razrabotka/kak-umenshit-razmer-flutter-prilozheniya-s-pomoschyu-optimizacii-assetov-596


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Π Π°Π·ΠΌΠ΅Ρ€ прилоТСния - это Π½Π΅ просто тСхничСский ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. Π­Ρ‚ΠΎ влияСт Π½Π° восприятиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ скачивания. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ассСтов - самый простой ΠΈ эффСктивный способ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ установочный Ρ„Π°ΠΉΠ» Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ качСства.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ WebP для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ. Для ΠΈΠΊΠΎΠ½ΠΎΠΊ Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΈΠ»ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ вмСсто SVG.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️

Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»:
πŸš€ ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ PRO
684005
πŸ‘£ Новая вСрсия ΠΏΠ»Π°Π³ΠΈΠ½Π° Flutter для VS Code

Π’Ρ‹ΡˆΠ»Π° новая вСрсия ΠΏΠ»Π°Π³ΠΈΠ½Π° Flutter для VS Code - v3.138.0. ОбновлСниС Π½Π΅ космСтичСскоС: Π΅ΡΡ‚ΡŒ ΠΈ тСхничСскиС ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ старого Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, Ρ‡Ρ‚ΠΎ измСнилось.


ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° LSP v3.18:

Плагин ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» LSP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π΄ΠΎ вСрсии 3.18. Π­Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ возмоТности для Dart Analysis Server ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… Ρ€Π΅Π»ΠΈΠ·Π°Ρ… SDK. Пока самих ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ Π½Π΅Ρ‚, Π½ΠΎ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ Π·Π°Π»ΠΎΠΆΠ΅Π½. Когда ΠΎΠ½ΠΈ появятся, Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° станСт эффСктивнСС Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий со стороны Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.


Flutter Outline ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ:

Из сайдбара ΡƒΠ±Ρ€Π°Π»ΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Flutter Outline. Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ пользовался Π΅ΠΉ рСгулярно, это Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. Но Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ ΠΏΡ€ΠΎΠΏΠ°Π»Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ - стандартный Outline остался Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Explorer, Π° прСдпросмотр Flutter UI Guides доступСн Ρ‡Π΅Ρ€Π΅Π· настройку dart.previewFlutterUiGuides. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ способ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ, просто Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€ΡƒΠ³ΠΎΠΉ интСрфСйс.


Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ:

Π’ ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… вСрсиях ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΌΠΎΠ³Π»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ слишком Ρ€Π΅Π·ΠΊΠΎ, Π½Π΅ давая сСрвСрам Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ это исправлСно. БистСма доТидаСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Analysis Server ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвисов, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ количСство сбоСв ΠΈ странных ошибок ΠΏΡ€ΠΈ пСрСзапускС VS Code.


Dart Tooling Daemon:

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ касаСтся DTD. РаньшС измСнСния Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΠ»ΠΈΡΡŒ Π²ΠΎ всС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Ρ‹Π²ΠΎΠ΄ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстов. Π’Π΅ΠΏΠ΅Ρ€ΡŒ этот Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ для второстСпСнных Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ². ΠœΠ΅Π»ΠΎΡ‡ΡŒ, Π½ΠΎ ΠΎΠ½Π° сниТаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° систСму.


πŸ”— https://appsell.su/blog/den-apps-1/flutter-razrabotka/novaya-versiya-plagina-flutter-dlya-vs-code-592


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

ОбновлСниС ΠΏΠ»Π°Π³ΠΈΠ½Π° - это смСсь тСхничСских ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ, удалСния старого Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΈ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Ρ… исправлСний. LSP v3.18 Π·Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ основу для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Flutter Outline ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ, Π½ΠΎ Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹. А ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ исправлСния тСстов Π΄Π΅Π»Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π΅Π΅.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️

Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»:
πŸš€ ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ PRO
729004
πŸ‘£ Π—Π½Π°Π΅Ρ‚Π΅ Flutter? Π—Π½Π°Ρ‡ΠΈΡ‚, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ бэкСнд Π½Π° Dart

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Flutter, Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Dart. Π’Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ async/await, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с модСлями ΠΈ рСпозиториями, ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΊ чистой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅. Π’Ρ‹ запускали прилоТСния Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… устройствах. ΠœΠ΅ΠΆΠ΄Ρƒ этим ΠΈ ΡƒΠΌΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ бэкСнд - ΠΏΡ€ΠΎΠΏΠ°ΡΡ‚ΡŒ мСньшС, Ρ‡Π΅ΠΌ каТСтся. НС Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ язык. НуТно ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Dart Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², Π½Π΅Ρ‚ BuildContext, Π½Π΅Ρ‚ Flutter. Π•ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ HTTP-запросы, Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ отправляСт ΠΎΡ‚Π²Π΅Ρ‚Ρ‹.

Автор https://www.freecodecamp.org/news/how-to-build-and-ship-production-rest-apis-with-dart-and-shelf/ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ этот ΠΏΡƒΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ API для управлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈ профилями. ВсС Π½Π° Π·Π½Π°ΠΊΠΎΠΌΠΎΠΌ Dart ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ Shelf. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ поднимаСтся Π² Docker с PostgreSQL, провСряСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· JWT-Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΈ дСплоится Π½Π° Fly.io.


Как Dart Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° сСрвСрС:

Π’ Flutter-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ваш ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ количСства Π»ΠΎΠ³ΠΈΠΊΠΈ: Π΄Π΅Ρ€Π΅Π²ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. На сСрвСрС Π½ΠΈΡ‡Π΅Π³ΠΎ этого Π½Π΅Ρ‚.

Π•ΡΡ‚ΡŒ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚ ΠΏΠΎΡ€Ρ‚, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ HTTP-запросы, Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ отправляСт ΠΎΡ‚Π²Π΅Ρ‚Ρ‹. Π’ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Dart Π΅ΡΡ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для этого Π½Π° самом Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅.


import 'dart:io';

void main() async {
final server = await HttpServer.bind('0.0.0.0', 8080);
print('Π‘Π΅Ρ€Π²Π΅Ρ€ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 8080');

await for (final request in server) {
request.response
..statusCode = 200
..write('ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΈΠ· Dart')
..close();
}
}


Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ HTTP-сСрвСр. Никаких ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ запрос ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· HttpServer, ΠΈ Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

Но ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹, middleware, аутСнтификация ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с dart:io становится Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Π—Π΄Π΅ΡΡŒ Π² ΠΈΠ³Ρ€Ρƒ вступаСт Shelf.


Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Shelf:

Shelf - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для создания Π²Π΅Π±-сСрвСров. Она Π½Π΅ пытаСтся Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ. ВмСсто этого ΠΎΠ½Π° Π΄Π°Π΅Ρ‚ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈΠΊΠΈ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ собираСтС ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ.

Π’ Shelf Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… понятия:

πŸ”΅Handler - функция, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Request ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Response. ВсС Π² Shelf Π² ΠΈΡ‚ΠΎΠ³Π΅ сводится ΠΊ Ρ…Π΅Π½Π΄Π»Π΅Ρ€Ρƒ.

πŸ”΅Middleware - функция, которая ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ…Π΅Π½Π΄Π»Π΅Ρ€, добавляя ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΈΠ»ΠΈ послС Π΅Π³ΠΎ выполнСния. Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, аутСнтификация ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок - это middleware.

πŸ”΅Pipeline - Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° middleware с Ρ…Π΅Π½Π΄Π»Π΅Ρ€ΠΎΠΌ Π² ΠΊΠΎΠ½Ρ†Π΅. Запрос ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· всС middleware, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ Ρ…Π΅Π½Π΄Π»Π΅Ρ€Π°.

πŸ”΅Router - сопоставляСт URL-ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΈ HTTP-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ Ρ…Π΅Π½Π΄Π»Π΅Ρ€Π°ΠΌΠΈ.

Если Π²Ρ‹ использовали Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ Π² Flutter ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹, модСль ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ понятна. МалСнькиС, нСзависимыС части ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ Ρ†Π΅Π»ΠΎΠ΅.


Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ:

Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ PostgreSQL. ВсС поднимаСтся Ρ‡Π΅Ρ€Π΅Π· Docker Compose. ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ автоматичСски ΠΏΡ€ΠΈ стартС прилоТСния.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… простая: Ρ‚Π°Π±Π»ΠΈΡ†Π° users ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π° profiles, связанная ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ. Код написан Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ сырыС SQL-запросы Π² Ρ…Π΅Π½Π΄Π»Π΅Ρ€Π°Ρ… - вся Ρ€Π°Π±ΠΎΡ‚Π° с Π±Π°Π·ΠΎΠΉ инкапсулирована Π² рСпозиториях.


πŸ”— https://appsell.su/blog/den-apps-1/flutter-razrabotka/znaete-flutter-znachit-mozhete-pisat-bekend-na-dart-589


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ - Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Π½ΠΈΠ΅ Dart Π½Π΅ заканчиваСтся Π½Π° Flutter. Π’Π΅ ΠΆΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈ Π½Π° сСрвСрС. НуТно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ контСкст: вмСсто Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² - ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° запросов, вмСсто State - Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ….

Shelf Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π° вас Π²Ρ‹Π±ΠΎΡ€ΠΎΠ². Он Π΄Π°Π΅Ρ‚ ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈΠΊΠΈ, Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π²Ρ‹ собираСтС сами. Π­Ρ‚ΠΎ философски Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ Flutter, Π³Π΄Π΅ Π²Ρ‹ Ρ‚ΠΎΠΆΠ΅ строитС UI ΠΈΠ· Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Dart, бэкСнд ΡƒΠΆΠ΅ Π½Π΅ выглядит Ρ‡Π΅ΠΌ-Ρ‚ΠΎ нСдоступным.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️

Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»:
πŸš€ ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ PRO
9200011
πŸ‘£ Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π² Flutter ΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс

Π’ΠΎ Flutter, ΠΊΠ°ΠΊ ΠΈ Π² любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅, пСриодичСски Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Π° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°. На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд каТСтся, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ просто Π²Π·ΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°Ρ€Ρƒ сСкунд. Но Ссли ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, интСрфСйс просто пСрСстанСт Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° касания.

Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ происходит ΠΈ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.


ΠŸΠΎΡ‡Π΅ΠΌΡƒ нСльзя Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ основной ΠΏΠΎΡ‚ΠΎΠΊ:

Π’ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… прилоТСниях Π΅ΡΡ‚ΡŒ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° отрисовку интСрфСйса ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ТСстов. Если этот ΠΏΠΎΡ‚ΠΎΠΊ занят ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ синхронным дСйствиСм, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ†ΠΈΠΊΠ»ΠΎΠΌ с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, Ρ‚ΠΎ интСрфСйс пСрСстаСт ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° опСрация Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ.

На Π°Π½Π΄Ρ€ΠΎΠΈΠ΄Π΅ Ссли Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ большС Ρ‡Π΅ΠΌ Π½Π° 5 сСкунд, систСма Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. На iOS Ρ‚Π°ΠΊΠΎΠ³ΠΎ ТСсткого ΠΏΠΎΡ€ΠΎΠ³Π° Π½Π΅Ρ‚, Π½ΠΎ интСрфСйс всС Ρ€Π°Π²Π½ΠΎ пСрСстаСт Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠΏΡ‹Ρ‚.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ врСмя, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ асинхронно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ основной ΠΏΠΎΡ‚ΠΎΠΊ оставался свободным для отрисовки ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π²ΠΎΠ΄Π°.


Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π²ΠΎ Flutter:

Π’ΠΎ Flutter Π΅ΡΡ‚ΡŒ нСсколько способов ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ. Π‘Π°ΠΌΡ‹ΠΉ простой ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Future.delayed():


Future.delayed(Duration(seconds: 2), () {
// ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполнится Ρ‡Π΅Ρ€Π΅Π· 2 сСкунды
});


Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Future, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ врСмя. ВсС это врСмя основной ΠΏΠΎΡ‚ΠΎΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, интСрфСйс остаСтся ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΌ, Π° Ρ‡Π΅Ρ€Π΅Π· 2 сСкунды выполняСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ асинхронной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ await:


void doSomething() async {
await Future.delayed(Duration(seconds: 2));
// ΠΊΠΎΠ΄ послС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ
}



Когда Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°:

Иногда Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΡƒΠΆΠ½Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ выполнСния ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΈ для создания Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΉ с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ врСмя ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ измСнСния Π½Π° экранС ΠΏΠ΅Ρ€Π΅Π΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ дСйствиСм.

НапримСр послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ», ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠΊΠΎΠ½ΠΊΡƒ успСха, Π° Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»Ρ‚ΠΎΡ€Ρ‹ сСкунды автоматичСски Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ экран. Или ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ°ΡƒΠ·Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ шагами Π² ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΌ процСссС.

Π’ΠΎ всСх этих случаях Future.delayed() - ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€.


Π§Π΅Π³ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ стоит:

Π‘Π°ΠΌΡ‹ΠΉ простой ΠΈ опасный способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ sleep(). Π­Ρ‚ΠΎ синхронная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ врСмя. Если Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π΅ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ - интСрфСйс ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСстанСт Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° касания.

Π’Π°ΠΊΠΆΠ΅ Π½Π΅ стоит ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ»Ρ‹ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ UI, Π½ΠΎ ΠΈ бСссмыслСнно Π³Ρ€ΡƒΠ·ΠΈΡ‚ процСссор.


Если Π½ΡƒΠΆΠ½ΠΎ большС контроля - Timer:

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сцСнариях Future.delayed() Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚. НапримСр, Ссли Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствиС пСриодичСски, ΠΎΡ‚ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ нСсколько Ρ€Π°Π· с ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ.

Для этого Π²ΠΎ Flutter Π΅ΡΡ‚ΡŒ класс Timer:


Timer(Duration(seconds: 2), () {
// выполнится ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Ρ‡Π΅Ρ€Π΅Π· 2 сСкунды
});


И для пСриодичСского выполнСния:


Timer.periodic(Duration(seconds: 2), (timer) {
// Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 2 сСкунды
});


Timer Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ асинхронно ΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ UI. Π•Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Π²Ρ‹Π·Π²Π°Π² timer.cancel().


πŸ”— https://appsell.su/blog/den-apps-1/flutter-razrabotka/kak-pravilno-delat-zaderzhku-v-flutter-i-ne-blokirovat-interfeys-585


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Для создания Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π²ΠΎ Flutter ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ асинхронныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Future.delayed() ΠΈΠ»ΠΈ Timer. Они Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ основной ΠΏΠΎΡ‚ΠΎΠΊ, интСрфСйс остаСтся ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΌ, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚ зависаний.

ИспользованиС синхронных Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда приводят ΠΊ ошибкам. Π’ мобильной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ зависший интСрфСйс для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ€Π°Π²Π½ΠΎΡ†Π΅Π½Π΅Π½ сломанному ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. Π”Π°ΠΆΠ΅ Ссли Π²Π½ΡƒΡ‚Ρ€ΠΈ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, внСшнС ΠΎΠ½ этого Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️

Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»:
πŸš€ ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ PRO
772005
Photo
πŸ‘£ GenUI Π² дСйствии: ΠΊΠΎΠΌΠ°Π½Π΄Π° Flutter Ρ€Π°Π·Π΄Π°Π»Π° 3000 Ρ‡Π°ΡˆΠ΅ΠΊ ΠΊΠΎΡ„Π΅ с ИИ-рисунками Π½Π° ΠΏΠ΅Π½ΠΊΠ΅

Команда Flutter Ρ€Π΅ΡˆΠΈΠ»Π° ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ создания Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΌΠΎ-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ посСтитСлям Google Cloud Next ΠΈ Google I/O. Π’ https://blog.flutter.dev/how-we-built-a-flutter-powered-ai-coffee-shop-878c60a11f1a Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊ построили ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΊΠΎΡ„Π΅ΠΉΠ½ΠΈ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ Π·Π°ΠΊΠ°Π·Π°Ρ‚ΡŒ Π»Π°Ρ‚Ρ‚Π΅ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, сгСнСрированным Π½Π΅ΠΉΡ€ΠΎΡΠ΅Ρ‚ΡŒΡŽ прямо Π½Π° ΠΏΠ΅Π½ΠΊΠ΅. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ назывался GenLatte. Π—Π° Π΄Π²Π° мСроприятия ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Π΄Π°Π»Π° 3000 Ρ‡Π°ΡˆΠ΅ΠΊ.


Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд всС просто. ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ» ΠΊ киоску, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π» Π²Π΅Π±-Π²Π΅Ρ€ΡΠΈΡŽ Flutter-прилоТСния ΠΈ описывал своС мСсто ΠΌΠ΅Ρ‡Ρ‚Ρ‹. Π­Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ: Π΄ΠΎΠΌΠΈΠΊ Ρƒ ΠΎΠ·Π΅Ρ€Π°, снСТный лСс, Π·Π°ΠΊΠ°Ρ‚ Π½Π° пляТС. ΠŸΡ€ΠΎΠΌΠΏΡ‚ ограничивался 50 символами, Ρ‡Π°Ρ‰Π΅ всСго это Π±Ρ‹Π»ΠΎ ΠΎΠ΄Π½ΠΎ-Π΄Π²Π° слова.

Π”Π°Π»ΡŒΡˆΠ΅ Π² Π΄Π΅Π»ΠΎ вступала Π½Π΅ΠΉΡ€ΠΎΡΠ΅Ρ‚ΡŒ Nano Banana. БистСма Π±Ρ€Π°Π»Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΡƒΡŽ Ρ„Ρ€Π°Π·Ρƒ ΠΈ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π»Π° Π΅Π΅ Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠΏΡ‚ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ изобраТСния. ΠŸΡ€ΠΈ этом создавалось сразу Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, всС Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π» ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ²ΡˆΠΈΠΉΡΡ ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΠ»ΠΎΡΡŒ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ Π½Π° ΠΏΠ΅Π½ΠΊΠ΅ Π»Π°Ρ‚Ρ‚Π΅.


ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Ρ‡Π΅Ρ€Π΅Π· GenUI:

Π‘Π°ΠΌΠΎΠ΅ интСрСсноС происходило послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄Π΅Π» сгСнСрированныС изобраТСния. Под ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΎΠΉ Π±Ρ‹Π»Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Tweak - это Π±Ρ‹Π»Π° Π½Π΅ просто Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°, Π° полноцСнная гСнСративная настройка Ρ‡Π΅Ρ€Π΅Π· UI.

Gemini ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Π» Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ вопроса ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. НапримСр, для Π΄ΠΎΠΌΠΈΠΊΠ° Ρƒ ΠΎΠ·Π΅Ρ€Π° это ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ вопросы ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, ΠΏΠΎΠ³ΠΎΠ΄Π΅, Π½Π°Π»ΠΈΡ‡ΠΈΠΈ людСй ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… дСталях. Π’ зависимости ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° вопроса систСма подставляла Ρ€Π°Π·Π½Ρ‹Π΅ элСмСнты управлСния: тСкстовоС ΠΏΠΎΠ»Π΅ для ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… вопросов ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².

Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ GenUI Π² дСйствии - интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собираСтся Π½Π° Π»Π΅Ρ‚Ρƒ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ.

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Π» Π½Π° вопросы, систСма отправляла ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠΏΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Nano Banana ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ новая вСрсия изобраТСния. ВсС это происходило Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.


ВСхничСская Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°:

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ построСн Π½Π° Flutter ΠΈ Firebase. Вся Π»ΠΎΠ³ΠΈΠΊΠ° собрана Π² ΠΌΠΎΠ½ΠΎΡ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π³Π΄Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Flutter-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Firebase-бэкСнд ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΊΠΎΠ΄ для бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ дублирования зависимостСй, ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Π΅ Π΄Π΅ΠΏΠ»ΠΎΠΈ.

Π’Π½ΡƒΡ‚Ρ€ΠΈ самого Flutter-прилоТСния Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… экранов:

πŸ”΅Π­ΠΊΡ€Π°Π½ Π·Π°ΠΊΠ°Π·Π° для посСтитСлСй.

πŸ”΅Π­ΠΊΡ€Π°Π½ бариста с Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ.

πŸ”΅Π­ΠΊΡ€Π°Π½ ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ бСзопасности ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

πŸ”΅Π­ΠΊΡ€Π°Π½ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ для ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ….

πŸ”΅Π­ΠΊΡ€Π°Π½ с Π½Π΅Π΄Π°Π²Π½ΠΈΠΌΠΈ Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ².


πŸ”— https://appsell.su/blog/den-apps-1/flutter-razrabotka/genui-v-deystvii-komanda-flutter-razdala-3000-chashek-kofe-s-ii-risunkami-581


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

GenLatte - это Π½Π΅ просто Π·Π°Π±Π°Π²Π½Ρ‹ΠΉ Π΄Π΅ΠΌΠΎ-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Flutter, Firebase ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ИИ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ вмСстС Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… условиях. 3000 Ρ‡Π°ΡˆΠ΅ΠΊ ΠΊΠΎΡ„Π΅ - это Π½Π΅ ΡˆΡƒΡ‚ΠΊΠ°. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Flutter ΠΌΠΎΠΆΠ½ΠΎ быстро ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ слоТныС ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹Π΅ прилоТСния, Π° Firebase Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ всС вопросы с бэкСндом ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. И Π³Π»Π°Π²Π½ΠΎΠ΅ - GenUI пСрСстаСт Π±Ρ‹Ρ‚ΡŒ абстрактной ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ само Ρ€Π΅ΡˆΠ°Π»ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ интСрфСйс ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π΅Π³ΠΎ дСйствия.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° доступСн Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ https://github.com/flutter/demos/tree/main/genlatte, Π½ΠΎ Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‚: ΠΎΠ½ Π½Π΅ поддСрТиваСтся ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для вдохновСния. А вдохновСния Ρ‚Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ. Когда Π² блиТайшСС врСмя Π·Π°Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ΡΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ИИ Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ - вспомнитС ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΎ Π»Π°Ρ‚Ρ‚Π΅ с нСйросСтСвым рисунком. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Ρ‚ΠΎΠ³ΠΎ, насколько ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·ΠΎΠΉΡ‚ΠΈΡΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‡Π΅Ρ€Π° казались просто ΠΈΠ³Ρ€ΡƒΡˆΠΊΠ°ΠΌΠΈ.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️
1,690004
πŸ‘£ Container vs SizedBox Π²ΠΎ Flutter: Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! Π’ΠΎ Flutter Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд Π΄Π΅Π»Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅: Container ΠΈ SizedBox. Оба ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ располоТСниСм Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². Но ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΈ использованиС Π½Π΅ Ρ‚ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Π² Π½ΡƒΠΆΠ½ΠΎΠΌ мСстС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ лишнСй влоТСнности, Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.


Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Container:

Container - это ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π² сСбС нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ, отступами (padding ΠΈ margin), Ρ„ΠΎΠ½ΠΎΠΌ, Ρ€Π°ΠΌΠΊΠΎΠΉ ΠΈ Ρ‚Π΅Π½ΡŒΡŽ. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ, высоту, Ρ†Π²Π΅Ρ‚, скруглСниС ΡƒΠ³Π»ΠΎΠ² ΠΈ отступы Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя.

Container ΡƒΠ΄ΠΎΠ±Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ внСшний Π²ΠΈΠ΄ Π±Π»ΠΎΠΊΠ°: Π·Π°Π΄Π°Ρ‚ΡŒ Ρ„ΠΎΠ½, ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ ΠΏΠΎ краям, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ отступы. Он ΡƒΠΌΠ΅Π΅Ρ‚ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°, Ссли явно Π½Π΅ Π·Π°Π΄Π°Π½Ρ‹ ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ высота.


Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SizedBox:

SizedBox - это простой ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚. Он Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ: Π·Π°Π΄Π°Π΅Ρ‚ фиксированный Ρ€Π°Π·ΠΌΠ΅Ρ€. Π›ΠΈΠ±ΠΎ ΡˆΠΈΡ€ΠΈΠ½Ρƒ, Π»ΠΈΠ±ΠΎ высоту, Π»ΠΈΠ±ΠΎ ΠΎΠ±Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° сразу. Если Π΅ΠΌΡƒ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ child, ΠΎΠ½ просто создаст пустоС пространство Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° - это ΡƒΠ΄ΠΎΠ±Π½ΠΎ для создания отступов ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ, Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° использованию Padding ΠΈΠ»ΠΈ Spacer.

SizedBox Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„ΠΎΠ½ΠΎΠΌ, Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ, тСнями ΠΈΠ»ΠΈ отступами. Π•Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° - Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€.


ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ отличия:

Container ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· явно Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Ρ€Π°ΡΡ‚ΡΠ³ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ содСрТимому. SizedBox всСгда Π»ΠΈΠ±ΠΎ фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π»ΠΈΠ±ΠΎ, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚.

Container - тяТСлый Π²ΠΈΠ΄ΠΆΠ΅Ρ‚. Он создаСт большС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ выполняСт большС вычислСний. SizedBox - Π»Π΅Π³ΠΊΠΈΠΉ, ΠΎΠ½ просто ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ свои ограничСния Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌΡƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρƒ.

Container - для стилизации. SizedBox - для контроля Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.


Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SizedBox:

SizedBox Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚Ρ€Π΅Ρ… случаях:

πŸ”΅ΠšΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ фиксированныС ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈΠ»ΠΈ высоту Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стилизации.

πŸ”΅ΠšΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ пустоС пространство ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ.

πŸ”΅ΠšΠΎΠ³Π΄Π° Π²Ρ‹ явно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°, Π½Π΅ добавляя ΠΏΡ€ΠΈ этом Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… элСмСнтов.


Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Container:

Container ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для всСго ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ:

πŸ”΅ΠšΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π½ΠΎ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΠΎΠ½, Ρ€Π°ΠΌΠΊΡƒ, Ρ‚Π΅Π½ΡŒ ΠΈΠ»ΠΈ скруглСниС.

πŸ”΅ΠšΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½Ρ‹ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ отступы.

πŸ”΅ΠšΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ сам подстраивался ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈ ΠΏΡ€ΠΈ этом ΠΈΠΌΠ΅Π» Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅.


πŸ”— https://appsell.su/blog/den-apps-1/flutter-razrabotka/container-vs-sizedbox-vo-flutter-v-chem-raznica-i-kogda-ispolzovat-577


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Container ΠΈ SizedBox - Ρ€Π°Π·Π½Ρ‹Π΅ инструмСнты для Ρ€Π°Π·Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. SizedBox - это ΠΏΡ€ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ пустыС пространства, Container - ΠΏΡ€ΠΎ внСшний Π²ΠΈΠ΄ ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Container Ρ‚Π°ΠΌ, Π³Π΄Π΅ достаточно SizedBox, ΠΈ Π½Π΅ ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ SizedBox - ΠΎΠ½ для этого Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½.

И Π³Π»Π°Π²Π½ΠΎΠ΅: Π½Π΅ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ вСрстку Π² ΠΌΠ°Ρ‚Ρ€Π΅ΡˆΠΊΡƒ. Если Π²ΠΈΠ΄ΠΈΡ‚Π΅ лишнюю Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ - пСрСсмотритС Π²Ρ‹Π±ΠΎΡ€ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. Чистый ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ - это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎ Π»ΠΎΠ³ΠΈΠΊΡƒ, Π½ΠΎ ΠΈ ΠΏΡ€ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π½Π½Ρ‹Π΅ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️

Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»:
πŸš€ ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ PRO
742006
Photo
πŸ‘£ ΠŸΠΎΡ‡Π΅ΠΌΡƒ Flutter - ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с ИИ-Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚. Π’ послСднСС врСмя всС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈ говорят ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ИИ-Π°Π³Π΅Π½Ρ‚ΠΎΠ². ΠšΡ‚ΠΎ-Ρ‚ΠΎ Π² восторгС, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ скСптичСн. Но ΠΌΠ°Π»ΠΎ ΠΊΡ‚ΠΎ задумываСтся, ΠΊΠ°ΠΊ Π²Ρ‹Π±ΠΎΡ€ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ влияСт Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с LLM. Майкл ВомсСн, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Flutter, выпустил https://blog.flutter.dev/flutters-multiplatform-value-for-agentic-development-cb5c7da7c2bc Π½Π° эту Ρ‚Π΅ΠΌΡƒ. Он ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Flutter Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Π΅ прСимущСства Π² эпоху агСнтской Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Основная ΠΌΡ‹ΡΠ»ΡŒ простая: ΠΎΠ΄Π½Π° кодовая Π±Π°Π·Π° вмСсто Ρ‚Ρ€Π΅Ρ… - это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для людСй, Π½ΠΎ ΠΈ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ИИ.


Π’ Ρ‡Π΅ΠΌ Π±Ρ‹Π»Π° Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ Flutter Ρ€Π°Π½ΡŒΡˆΠ΅:

Π•Ρ‰Π΅ Π΄ΠΎ эры Π°Π³Π΅Π½Ρ‚ΠΎΠ² Flutter Ρ€Π΅ΡˆΠ°Π» ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ: вмСсто Ρ‚Ρ€Π΅Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ (iOS, Android, Π²Π΅Π±) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ, которая ΠΏΠΈΡˆΠ΅Ρ‚ ΠΊΠΎΠ΄ Π½Π° Dart ΠΈ запускаСт Π΅Π³ΠΎ Π²Π΅Π·Π΄Π΅. ΠžΡ‚ 95% Π΄ΠΎ 99% ΠΊΠΎΠ΄Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Π­Ρ‚ΠΎ Π΄Π°Π²Π°Π»ΠΎ:

πŸ”΅Π‘Ρ‹ΡΡ‚Ρ€Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ Π½Π° всСх ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ….

πŸ”΅Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Ρ„ΠΈΡ‡ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π°.

πŸ”΅ΠΠ°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (компиляция Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄).

πŸ”΅Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ благодаря строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ Dart.


Π§Ρ‚ΠΎ измСнилось с ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΎΠΌ ИИ-Π°Π³Π΅Π½Ρ‚ΠΎΠ²:

Когда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π°Π³Π΅Π½Ρ‚Ρ‹, Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ (Swift ΠΏΠΎΠ΄ iOS, Kotlin ΠΏΠΎΠ΄ Android, JavaScript ΠΏΠΎΠ΄ Π²Π΅Π±) Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±ΡƒΠΊΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ. АгСнту Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ‚Ρ€ΠΈΠΆΠ΄Ρ‹, Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках, с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ нюансами. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚Ρ€Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, растСт ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². КаТдая гСнСрация ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ исправлСниС ΡƒΠΌΠ½ΠΎΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° количСство ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ отличия Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ. АгСнт ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π³Π°Π»Π»ΡŽΡ†ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Ρ„ΠΈΡ‡Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, слоТнСС ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ.


ΠŸΠΎΡ‡Π΅ΠΌΡƒ Flutter Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

Flutter ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΡƒΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ Π½Π° Dart. АгСнт ΠΏΠΈΡˆΠ΅Ρ‚ всС ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π° Π½Π΅ Ρ‚Ρ€ΠΈ. Π’ΠΎΠΊΠ΅Π½ΠΎΠ² тратится мСньшС, гСнСрация быстрСС, Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π΅ расходится.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρƒ Flutter Π΅ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ особСнности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для агСнтской Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Бильная статичСская типизация Dart Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ систСма самопровСрки: Ссли Π°Π³Π΅Π½Ρ‚ сгСнСрировал Π½Π΅ Ρ‚ΠΎ, компилятор сразу ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π­Ρ‚ΠΎ сниТаСт количСство Π³Π°Π»Π»ΡŽΡ†ΠΈΠ½Π°Ρ†ΠΈΠΉ.


πŸ”— https://appsell.su/blog/den-apps-1/flutter-razrabotka/pochemu-flutter-idealnyy-vybor-dlya-razrabotki-s-ii-agentami-573


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Flutter Π±Ρ‹Π» ΡƒΠ΄ΠΎΠ±Π΅Π½ для ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ нСсколько ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Π±Π΅Π· Ρ‚Ρ€ΠΎΠΉΠ½ΠΎΠ³ΠΎ объСма Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’ эпоху ИИ-Π°Π³Π΅Π½Ρ‚ΠΎΠ² этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ становится Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ. МСньшС ΠΊΠΎΠ΄Π° - мСньшС Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². Одна Π»ΠΎΠ³ΠΈΠΊΠ° - Π½Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ различия. Бильная типизация - мСньшС Π³Π°Π»Π»ΡŽΡ†ΠΈΠ½Π°Ρ†ΠΈΠΉ. Горячая ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° - быстрая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°.

Для агСнтской Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Flutter выглядит ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️

Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»:
πŸš€ ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ PRO
1,8200010
πŸ“± Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° git cherry-pick?

Команда git cherry-pick позволяСт пСрСнСсти ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ, Π½Π΅ сливая Π²Π΅Ρ‚ΠΊΠΈ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ измСнСния ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ.


Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

πŸ”΅ΠΠ°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ (ΠΏΠΎ Ρ…Π΅ΡˆΡƒ) Π² истории Git.

πŸ”΅ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ Π΅Π³ΠΎ измСнСния ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅, создавая Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ (с Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ…Π΅ΡˆΠ΅ΠΌ).


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:


# ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠΌΡΡ Π² Π²Π΅Ρ‚ΠΊΡƒ, ΠΊΡƒΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ пСрСнСсти ΠΊΠΎΠΌΠΌΠΈΡ‚
git checkout feature

# ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ с Ρ…Π΅ΡˆΠ΅ΠΌ a1b2c3
git cherry-pick a1b2c3



Π’Ρ‹Π²ΠΎΠ΄:

git cherry-pick – это Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹ΠΉ инструмСнт для пСрСноса ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️

Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»:
πŸš€ ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ PRO
763007
πŸ‘£ Expansible - Π½ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ для ΠΏΠ»Π°Π²Π½ΠΎ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка

Π’ΠΎ Flutter 3.32 появился Π½ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ -Β Expansible. Он ΠΏΡ€ΠΈΡˆΠ΅Π» Π½Π° смСну старому ExpansionTileΒ ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ большС Π½Π΅ поддСрТиваСтся.Β Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π° простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.


Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Expansible:

ExpansibleΒ - это StatefulWidget, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΠ»Π°Π²Π½ΠΎ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ ΡΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ части:

πŸ”΅headerΒ - Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всСгда Π½Π° Π²ΠΈΠ΄Ρƒ.

πŸ”΅bodyΒ - содСрТимоС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ появляСтся ΠΏΡ€ΠΈ раскрытии.

АнимациСй управляСт AnimationController, поэтому всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠ»Π°Π²Π½ΠΎ ΠΈ Π±Π΅Π· Π΄Π΅Ρ€Π³Π°Π½ΠΈΠΉ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ старого ExpansionTile.


ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π‘Π°ΠΌΡ‹ΠΉ частый сцСнарий - ΠΊΠΎΠ³Π΄Π° ΠΏΠΎ Ρ‚Π°ΠΏΡƒ Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ раскрываСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядит:


class ExpansibleExample extends StatefulWidget {
@override
State<ExpansibleExample> createState() => _ExpansibleExampleState();
}

class _ExpansibleExampleState extends State<ExpansibleExample> {
final _controller = ExpansibleController();

@override
Widget build(BuildContext context) {
return Expansible(
controller: _controller,
headerBuilder: (context, animation) => ListTile(
title: Text('НаТми, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ'),
onTap: () {
if (_controller.isExpanded) {
_controller.collapse();
} else {
_controller.expand();
}
},
trailing: RotationTransition(
turns: Tween<double>(begin: 0.0, end: 0.5).animate(animation),
child: Icon(Icons.arrow_drop_down),
),
),
bodyBuilder: (context, animation) => SizeTransition(
sizeFactor: animation,
child: Text('А Π²ΠΎΡ‚ ΠΈ скрытый ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚!'),
),
);
}

@override
void dispose() {
_controller.dispose();
super.dispose();
}
}


ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° нСсколько Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…,Β ExpansibleControllerΒ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΒ dispose(). Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, для ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° стрСлочки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡΒ animation, которая ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π²Β headerBuilderΒ - ΠΎΠ½Π° ΡƒΠΆΠ΅ содСрТит Π½ΡƒΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 0 Π΄ΠΎ 0.5 ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π°. Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…,Β SizeTransition с animationΒ Π°Π½ΠΈΠΌΠΈΡ€ΡƒΠ΅Ρ‚ высоту body. ВсС вмСстС Π΄Π°Π΅Ρ‚ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΉ эффСкт Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… Ρ‚Π΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ.


Π’Π°ΠΆΠ½Ρ‹ΠΉ нюанс ΠΏΡ€ΠΎ ListView:

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅Β ExpansibleΒ Π²Π½ΡƒΡ‚Ρ€ΠΈΒ ListViewΒ ΠΈΠ»ΠΈΒ SingleChildScrollView, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅Β PageStorageKey. Π˜Π½Π°Ρ‡Π΅ ΠΏΡ€ΠΈ скроллС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ своС состояниС (раскрыт ΠΈΠ»ΠΈ свСрнут) ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ удивится.


Expansible(
key: PageStorageKey('unique_key_1'), // ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Expansible свой ΠΊΠ»ΡŽΡ‡
controller: _controller,
headerBuilder: ...
bodyBuilder: ...
)



πŸ”— https://appsell.su/blog/den-apps-1/flutter-razrabotka/expansible-novyy-vidzhet-dlya-plavno-raskryvayuschegosya-spiska-560


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

ExpansibleΒ - это Π½Π΅ просто Π·Π°ΠΌΠ΅Π½Π° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΌΡƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρƒ. Π­Ρ‚ΠΎ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ давнюю боль Flutter-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²: плавная анимация высоты, сохранСниС состояния ΠΏΡ€ΠΈ скроллС ΠΈ чистый API Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² любой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ - ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. А Ссли Π½ΡƒΠΆΠ½ΠΎ большС гибкости, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅Β expansibleBuilderΒ ΠΈ настраивайтС ΠΏΠΎΠ΄ свои Π·Π°Π΄Π°Ρ‡ΠΈ. Если Π²Ρ‹ обновились Π΄ΠΎ Flutter 3.32, ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ΡΡŒ ΠΊ этому Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρƒ - ΠΎΠ½ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️

Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»:
πŸš€ ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ PRO
7750010
Photo1/2
πŸ‘£ ΠŸΠΎΡ‡Π΅ΠΌΡƒ primary constructors Π² Dart слоТнСС, Ρ‡Π΅ΠΌ каТСтся

Π’ Dart 3.13 появилась Ρ„ΠΈΡ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΆΠ΄Π°Π»ΠΈ Π³ΠΎΠ΄Π°ΠΌΠΈ - primary constructors. Π’Π΅ΠΏΠ΅Ρ€ΡŒ класс с полями ΠΈ конструктором ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ строку. Но ΠΏΡƒΡ‚ΡŒ ΠΊ этому Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π±Ρ‹Π» Π΄ΠΎΠ»Π³ΠΈΠΌ. Команда Dart ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ»Π° ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° обсуТдСниС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΈ принятиС компромиссов. Π‘ΠΎΠ± ΠΡŽΡΡ‚Ρ€ΠΎΠΌ написал большой Ρ€Π°Π·Π±ΠΎΡ€ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Π΅Ρ€Π΅Π· Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ самыС Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π°.


ΠŸΠΎΡ‡Π΅ΠΌΡƒ синтаксичСский сахар Π²Π°ΠΆΠ΅Π½:

Primary constructors Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π² язык Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй. ВсС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π½ΠΈΡ…, ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ старым способом. Π­Ρ‚ΠΎ чистый синтаксичСский сахар.

Вопрос Π² Ρ‚ΠΎΠΌ, Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½. БинтаксичСский сахар ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… случаях.

πŸ”ΉΠŸΠ΅Ρ€Π²Ρ‹ΠΉ - ΠΊΠΎΠ³Π΄Π° Π½ΠΎΠ²Ρ‹ΠΉ способ просто Π»ΡƒΡ‡ΡˆΠ΅ старого. НапримСр, Π² Dart 2.0 сдСлали Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово new ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ синтаксис остался для совмСстимости, Π½ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π΅Π³ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚.

πŸ”ΉΠ’Ρ‚ΠΎΡ€ΠΎΠΉ - ΠΊΠΎΠ³Π΄Π° синтаксис сильно ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ частый сцСнарий. Π’ Dart ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ enum. Π˜Ρ… эмулировали Ρ‡Π΅Ρ€Π΅Π· классы с константами. Когда Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ настоящиС enum, ΠΊΠΎΠ΄ стал Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΡ€ΠΎΡ‡Π΅, Π½ΠΎ ΠΈ понятнСС.

πŸ”ΉΠ’Ρ€Π΅Ρ‚ΠΈΠΉ - ΠΊΠΎΠ³Π΄Π° синтаксис Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ явным. Код Π² классах с константами Π½Π΅ Π΄Π°Π²Π°Π» ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это enum. А настоящий enum сразу Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.


Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ primary constructors:

Primary constructors Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ: объявлСниС класса с конструктором, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто сохраняСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² поля.

Π‘Π΅Π· primary constructors ΠΊΠΎΠ΄ выглядит Ρ‚Π°ΠΊ:

class Point {
final int x;
final int y;
Point(int x, int y) : x = x, y = y;
}

Б использованиСм initializing formals:

class Point {
final int x;
final int y;
Point(this.x, this.y);
}

Но Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π΅Ρ‰Π΅ ΠΊΠΎΡ€ΠΎΡ‡Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

class Point(final int x, final int y);


Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°:

Главная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: синтаксичСский ΠΊΠ»ΠΈΡ„. Π­Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ‚Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΡˆΡŒ с простого синтаксиса, Π° ΠΏΠΎΡ‚ΠΎΠΌ Ρ…ΠΎΡ‡Π΅ΡˆΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ малСнькоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ Π½Π΅ вписываСтся, ΠΈ Ρ‚Ρ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ всС.

НапримСр, Ρƒ класса Π΅ΡΡ‚ΡŒ primary constructor с ΠΊΡƒΡ‡Π΅ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠŸΠΎΡ‚ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² конструктор. Если primary constructor Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π΅Π»ΠΎ, придСтся ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ всС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° старый синтаксис.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, Π² Dart Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈ this { ... } Π²Π½ΡƒΡ‚Ρ€ΠΈ класса. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π΅Π»ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ для primary constructor Π±Π΅Π· пСрСписывания всСго.

class FormatterOptions(
final int indent = 0,
final int pageWidth = 80,
) {
this {
log.write('Created options.');
}
}


Новый синтаксис конструкторов:

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ касаСтся объявлСния конструкторов. РаньшС Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ имя класса:

class LongClassName {
LongClassName(); // бСзымянный
LongClassName.create(); // ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ
}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово new:

class LongClassName {
new(); // бСзымянный
new create(); // ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ
}

Для Ρ„Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹Ρ… конструкторов:

class AnotherLongClass {
factory () { ... } // Ρ„Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ
factory create() { ... } // ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ
}

Π­Ρ‚ΠΎ ΠΊΠΎΡ€ΠΎΡ‡Π΅, особСнно для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ классов. И Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с typedef ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ, Π³Π΄Π΅ имя класса Π½Π΅ всСгда доступно.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Primary constructors Π² Dart 3.13 - это Π½Π΅ просто ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ синтаксичСский сахар. Π­Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ язык ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ ΠΏΡ€ΠΎΡ‰Π΅.

Команда языка ΡƒΡ‡Π»Π° ΠΎΠΏΡ‹Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ синтаксичСских ΠΊΠ»ΠΈΡ„ΠΎΠ² ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° объявлСниС конструкторов Π½Π° Π±ΠΎΠ»Π΅Π΅ простоС. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΊΠΎΠ΄ стал ΠΊΠΎΡ€ΠΎΡ‡Π΅, , Π° язык Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ приятным для повсСднСвной Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π­Ρ‚ΠΎ Π½Π΅ послСднСС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. Π―Π·Ρ‹ΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ. Но primary constructors - Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΈΠ·Π°ΠΉΠ½ языка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΌ.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
1,640006
Video
πŸ‘£ Π Π°Π±ΠΎΡ‚Π° с растровыми изобраТСниями Π²ΠΎ Flutter

Π’ΠΎ Flutter Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…, Π° Π½Π΅ Π² пиксСлях. Одна Ρ‚ΠΎΡ‡ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΌΡƒ количСству пиксСлСй Π² зависимости ΠΎΡ‚ плотности экрана. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ выглядСло ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π½Π° всСх устройствах, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ нСсколько вСрсий ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠ΄ Ρ€Π°Π·Π½Ρ‹Π΅ коэффициСнты ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.


Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ devicePixelRatio:

ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ devicePixelRatio ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, сколько физичСских пиксСлСй содСрТится Π² ΠΎΠ΄Π½ΠΎΠΉ логичСской Ρ‚ΠΎΡ‡ΠΊΠ΅. На старых устройствах это 1x. На соврСмСнных - 2x, 3x ΠΈ Π΄Π°ΠΆΠ΅ 4x. Π§Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ коэффициСнт, Ρ‚Π΅ΠΌ большС пиксСлСй Π½ΡƒΠΆΠ½ΠΎ для отобраТСния ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ.

Flutter автоматичСски Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ изобраТСния, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° плотности экрана устройства.


Бколько вСрсий Π½ΡƒΠΆΠ½ΠΎ:

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ достаточно ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ изобраТСния для коэффициСнтов 1x, 1.5x, 2x, 3x ΠΈ 4x. Π‘ΠΎΠ»ΡŒΡˆΠ΅ трСбуСтся Ρ€Π΅Π΄ΠΊΠΎ. МСньшС - ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ€Π°Π·ΠΌΡ‹Ρ‚ΠΈΡŽ Π½Π° устройствах с высокой ΠΏΠ»ΠΎΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ экрана.

КаТдая вСрсия Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΅Π΅ коэффициСнту. НапримСр, Ссли ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 100x100, Ρ‚ΠΎ для 2x Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ 200x200 пиксСлСй, для 3x - 300x300.


Как ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅:

Flutter ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… коэффициСнтов Π±ΡƒΠ΄ΡƒΡ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΏΠΊΠ°Ρ…. ИмСна ΠΏΠ°ΠΏΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ коэффициСнту: x1.5, x2.0, x3.0, x4.0.


assets/
images/
x1.5/
photo.png
x2.0/
photo.png
x3.0/
photo.png
x4.0/
photo.png
photo.png


Π’Β pubspec.yaml достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ. Flutter сам Π½Π°ΠΉΠ΄Π΅Ρ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² зависимости ΠΎΡ‚ плотности экрана.


flutter:
assets:
- assets/images/



πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ Ρ€Π°Π·Π½Ρ‹Π΅ плотности экрана - ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ шаг для качСствСнного отобраТСния. НСсколько вСрсий Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ°Ρ… x1.5, x2.0, x3.0, x4.0 ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π² pubspec.yaml - всС, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ.

Flutter Π΄Π΅Π»Π°Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ автоматичСски. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ассСты ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ структуру. Π­Ρ‚ΠΎ нСслоТно, Π½ΠΎ влияСт Π½Π° внСшний Π²ΠΈΠ΄ прилоТСния Π½Π° устройствах с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ экранами.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
692006
Photo1/2
πŸ‘£ Π Π΅Π»ΠΈΠ· Dart 3.13: Ρ‡Ρ‚ΠΎ принСсла новая вСрсия

Π’Ρ‹ΡˆΠ»Π° новая вСрсия Dart 3.13. Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ - primary constructors стали ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ сокращаСт количСство шаблонного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ объявлСнии классов. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ tree-shaking для Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π²Π΅Π±Π°.


Primary constructors стали ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ:

Π’ Dart 3.13 primary constructors Π½Π°ΠΊΠΎΠ½Π΅Ρ†-Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ класс с полями ΠΈ конструктором ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ строку.

class Point(final int x, final int y);

Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ конструктор ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ. Для ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Π»ΠΈΠ½Ρ‚Ρ‹ с автофиксами ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Β«Convert to primary constructorΒ» прямо Π² IDE.


Π€ΠΎΡ€ΠΌΠ°Ρ‚Π΅Ρ€ стал ΡƒΠΌΠ½Π΅Π΅:

Π’ dart format нСсколько ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΊΠΎΠ΄ Ρ‡ΠΈΡ‰Π΅. Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ с большими коллСкциями Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ нСкрасиво. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎ.

Π’Π°ΠΊΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅Ρ€ Π½Π°Ρ‡Π°Π» автоматичСски Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ сСкции ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ² пустыми строками, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Effective Dart. Π˜ΠΌΠΏΠΎΡ€Ρ‚Ρ‹ dart:, package: ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.


Tree-shaking Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ:

Появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ· Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠ°. РаньшС Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· большой Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, вся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΡΡ‚Π°Π²Π°Π»Π°ΡΡŒ Π² сборкС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ.

НуТно ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ FFI-Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ @RecordUse(), Π° Π² link hook Ρ‡Π΅Ρ€Π΅Π· package:record_use ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ. Если Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ - Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° выкидываСтся Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния.


Web - deferred loading ΠΈ ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ dart:html:

Для dart2wasm появилась ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (--enable-deferred-loading). Π­Ρ‚ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ врСмя Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π’Π°ΠΊΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° dart:html объявлСна ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ. ВмСсто Π½Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ dart:js_interop ΠΈ package:web. МногиС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΡƒΠΆΠ΅ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ зависимостСй часто Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ автоматичСски.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Dart 3.13 - насыщСнноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅. Primary constructors ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π€ΠΎΡ€ΠΌΠ°Ρ‚Π΅Ρ€ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ Ρ‡ΠΈΡ‰Π΅. Tree-shaking Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΎΠ². Π’Π΅Π±-инструмСнты Π΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π² сторону dart2wasm ΠΈ соврСмСнных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

Primary constructors упростят ΠΊΠΎΠ΄, Π° tree-shaking пригодится Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… с тяТСлыми Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ зависимостями. ОсобСнно Ссли Π²Ρ‹ собираСтС Ρ€Π΅Π»ΠΈΠ·Π½Ρ‹Π΅ сборки, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
8270010
Photo1/2
πŸ‘£ Π Π΅Π»ΠΈΠ· Flutter 3.47: Π³Π»Π°Π²Π½Ρ‹Π΅ измСнСния для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

Π’Ρ‹ΡˆΠ»Π° новая вСрсия Flutter 3.47. ОбновлСниС Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠ΅. Material ΠΈ Cupertino Π½Π°ΠΊΠΎΠ½Π΅Ρ†-Ρ‚ΠΎ Π²Ρ‹Π΅Ρ…Π°Π»ΠΈ ΠΈΠ· SDK Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. Impeller стал Ρ€Π΅Π½Π΄Π΅Ρ€Π΅Ρ€ΠΎΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° дСсктопС. Плюс ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ осСнним обновлСниям Apple ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ всС основныС измСнСния.


Material ΠΈ Cupertino Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹:

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. Material ΠΈ Cupertino большС Π½Π΅ встроСны Π² SDK. Π’Π΅ΠΏΠ΅Ρ€ΡŒ это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π½Π° pub.dev: material_ui ΠΈ cupertino_ui. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ обновлСния Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ нСзависимо ΠΎΡ‚ Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Flutter.

Пока это ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ. Π‘Ρ‚Π°Ρ€Ρ‹Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ ΠΈΠ· package:flutter/material.dart всС Π΅Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ Π² ноябрС.

Для ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

dart fix --apply --code=migrate_design_widgets

ПослС этого ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ обновятся автоматичСски. Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ:

flutter pub add material_ui
flutter pub add cupertino_ui

Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ для ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с зависимостями: Ссли Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ обновились, Π° ваши зависимости ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ MaterialUiCompatibilityBridge.

Π’Π°ΠΊΠΆΠ΅ вмСстС с UI-ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ flutter_localizations. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π΅Π»Π΅Π³Π°Ρ‚Ρ‹ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΆΠΈΠ²ΡƒΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ material_ui ΠΈ cupertino_ui, Π° Π½Π΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅.


ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ iOS 27 ΠΈ macOS 27:

Apple осСнью выпустит Xcode 27 с Π½ΠΎΠ²Ρ‹ΠΌΠΈ трСбованиями. Минимальная вСрсия iOS поднята Π΄ΠΎ 15, macOS Π΄ΠΎ 12. iOS 27 SDK Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° UIScene. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±Π΅Π· Π½Π΅Π³ΠΎ Π½Π΅ запустятся Π½Π° Π½ΠΎΠ²Ρ‹Ρ… устройствах.

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² CLI ΠΌΠΈΠ³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ автоматичСски. Но Ссли Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π΅ΡΡ‚ΡŒ кастомный AppDelegate, придСтся ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ€ΡƒΠΊΠ°ΠΌΠΈ. Π›ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сСйчас.

Π’Π°ΠΊΠΆΠ΅ Flutter постСпСнно сворачиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Intel Mac. Π’ этой вСрсии Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прСдупрСТдСния, Π½ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ сборка Π½Π° Intel пСрСстанСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. МоТно ΡƒΠΆΠ΅ сСйчас ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ARM64-only:

flutter config --enable-macos-arm64-only

По Swift Package Manager прогрСсс: 92 ΠΈΠ· Ρ‚ΠΎΠΏ-100 ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ Π½Π° SPM. Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ SPM, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ:

flutter config --enable-swift-package-manager


Impeller Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° дСсктопС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:

Impeller стал Ρ€Π΅Π½Π΄Π΅Ρ€Π΅Ρ€ΠΎΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° macOS, Windows ΠΈ Linux. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ это - Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³-Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Ρ‹ Π½Π° этапС сборки, Π° Π½Π΅ Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅. Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π½Ρ‹Ρ… Π΄ΠΆΠ°Π½ΠΊΠΎΠ². ΠŸΠ΅Ρ€Π²Π°Ρ анимация Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠ»Π°Π²Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅.

На macOS Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Wide Gamut Color - Π±ΠΎΠ»Π΅Π΅ насыщСнныС ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ Ρ†Π²Π΅Ρ‚Π°.

ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Impeller ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… вСрсиях опция Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π°.


Flavors для дСсктопа:

Flavors, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΠΊΠ°Ρ…, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступны ΠΈ Π½Π° Windows ΠΈ Linux. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ассСты ΠΈ настройки для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ.

flutter build windows --flavor production
flutter build linux --flavor staging

Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ‚ΠΎΠΆΠ΅ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ. На Windows ΠΈ Linux появились popup-ΠΎΠΊΠ½Π°. МоТно Π΄Π΅Π»Π°Ρ‚ΡŒ контСкстныС мСню ΠΈ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Flutter 3.47 - Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅. Π“Π»Π°Π²Π½ΠΎΠ΅ - Material ΠΈ Cupertino Π²Ρ‹Π΅Ρ…Π°Π»ΠΈ ΠΈΠ· SDK. Π­Ρ‚ΠΎ упростит обновлСния Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ снизит Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Flutter.

Impeller Π½Π° дСсктопС - большой шаг для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Flavors ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π΄Π΅Π»Π°ΡŽΡ‚ дСсктоп-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ. А ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ осСннСму Ρ€Π΅Π»ΠΈΠ·Ρƒ Apple заставляСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
1,770008
Video
πŸ‘£ Плагин Flutter для VS Code обновился Π΄ΠΎ вСрсии 3.140.0

Π’Ρ‹ΡˆΠ»ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Π° Flutter для VS Code. ИзмСнСния Π² основном Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Π΅, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ: ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ Flutter SDK измСнился, появилась ΠΊΠΎΠΌΠ°Π½Π΄Π° для TODOs ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ Π²Π²ΠΎΠ΄ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.


Flutter SDK - измСнился ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚:

РаньшС ΠΏΠ»Π°Π³ΠΈΠ½ ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SDK, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π΅Π· .dart_tool/package_config.json, Π΄Π°ΠΆΠ΅ Ссли Π² PATH Π±Ρ‹Π» Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ SDK ΠΈΠ· PATH ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. Если Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ явный ΠΏΡƒΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ настройка dart.flutterSdkPath.


Новая команда - Toggle Show TODOs:

Появилась ΠΊΠΎΠΌΠ°Π½Π΄Π° Dart: Toggle Show TODOs. Она Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ TODO-ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. РаньшС для этого Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π»Π΅Π·Ρ‚ΡŒ Π² настройки. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· панСль ΠΊΠΎΠΌΠ°Π½Π΄.


Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ с Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

Π’ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°Ρ… появился Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сбора ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°. РаньшС ΠΏΠ»Π°Π³ΠΈΠ½ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π» имя автоматичСски. Π’Π΅ΠΏΠ΅Ρ€ΡŒ для Β«Add a name to the constructorΒ» ΠΈ Β«Add a prefix to the importΒ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ для Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ.


Бинтаксис ΠΈ подсвСтка:

Обновили TextMate-Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ для Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ подсвСтки синтаксиса, ΠΏΠΎΠΊΠ° сСрвСр Π½Π΅ пСрСдаст Semantic Tokens. Π˜ΡΠΏΡ€Π°Π²ΠΈΠ»ΠΈ случай, ΠΊΠΎΠ³Π΄Π° Π½Π΅Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° Π² dartdoc-коммСнтариях Π»ΠΎΠΌΠ°Π»ΠΈ подсвСтку. Π’Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ΄-Π±Π»ΠΎΠΊΠΈ Π² dartdoc большС Π½Π΅ Ρ‚Π΅Ρ€ΡΡŽΡ‚ Ρ†Π²Π΅Ρ‚Π° ΠΏΡ€ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.


ВСстированиС:

Для package:test_reflective_loader исправили ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ setUp/tearDown Π² тСстовом эксплорСрС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ΠΈ Π½Π°Π²ΠΈΠ³ΠΈΡ€ΡƒΡŽΡ‚ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π° Π½Π΅ Π½Π° defineReflectiveSuite. Π’Π°ΠΊΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ большС Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° всСх классах, Π³Π΄Π΅ ΠΈΡ… Π½Π΅Ρ‚.


ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Dart: New Project ΠΈ Flutter: New Project ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»ΠΈ Π² Dart: Create New Project ΠΈ Flutter: Create New Project. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… поиска ΠΏΠΎ словам dart create ΠΈ flutter create.


Firebase Studio:

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Firebase Studio объявлСна ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π°. Π­Ρ‚ΠΎ связано с Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ самого сСрвиса.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

ОбновлСниС ΠΏΠ»Π°Π³ΠΈΠ½Π° - это смСсь ΠΌΠ΅Π»ΠΊΠΈΡ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΌ измСнСниям Π² SDK. Из ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ: Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π° SDK, ΠΊΠΎΠΌΠ°Π½Π΄Π° для TODOs ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ с Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠžΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ - исправлСния ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΌ Ρ€Π΅Π»ΠΈΠ·Π°ΠΌ.

ИзмСнСний Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅. ОсобСнно для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ TODOs ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
630007
Video
πŸ‘£ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сборщик мусора Π² Dart. ΠŸΠ°ΠΌΡΡ‚ΡŒ, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ smi

Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора Π² Dart - Ρ‚Π΅ΠΌΠ°, которая часто всплываСт Π½Π° собСсСдованиях, Π½ΠΎ Π½Π°ΠΉΡ‚ΠΈ внятноС объяснСниС нСпросто. Π‘Ρ‚Π°Ρ‚ΡŒΠΈ Π»ΠΈΠ±ΠΎ слишком слоТныС, Π»ΠΈΠ±ΠΎ уходят Π² Π΄Π΅Π±Ρ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ VM. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ основы: ΠΊΠ°ΠΊ Dart управляСт ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ числа Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.


Π‘ΠΈΡ‚Ρ‹, Π±Π°ΠΉΡ‚Ρ‹ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ:

ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° - это Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ряд ячССк, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит Π±ΠΈΡ‚ (0 ΠΈΠ»ΠΈ 1). ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ Π±ΠΈΡ‚ΠΎΠ². Π’ 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… процСссорах это Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎ 64 Π±ΠΈΡ‚Π° (8 Π±Π°ΠΉΡ‚). Π­Ρ‚ΠΎ машинноС слово.

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² Dart Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½ΠΎ машинноС слово - 8 Π±Π°ΠΉΡ‚.

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ - это Π½Π΅ сам адрСс, Π° мСсто, Π³Π΄Π΅ этот адрСс записан. Если ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ адрСс Π΄ΠΎΠΌΠ°, Ρ‚ΠΎ листок Π±ΡƒΠΌΠ°Π³ΠΈ - это ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° Π½Π΅ΠΌ написано - сам адрСс.


Как Dart ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ число ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

Dart числа ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ хранятся ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Если пСрСмСнная содСрТит число, ΠΎΠ½ΠΎ хранится прямо Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ - Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΏΠΎ адрСсу Π½Π΅ трСбуСтся. Если пСрСмСнная содСрТит ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ хранится адрСс этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ этому адрСсу.

Как Dart ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π»Π΅ΠΆΠΈΡ‚ Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅? ВсС Ρ€Π΅ΡˆΠ°Π΅Ρ‚ послСдний Π±ΠΈΡ‚.

АдрСса ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² памяти ΠΊΡ€Π°Ρ‚Π½Ρ‹ 16. Π­Ρ‚ΠΎ сдСлано ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ. Если адрСс ΠΊΡ€Π°Ρ‚Π΅Π½ 16, Π΅Π³ΠΎ послСдниС Π±ΠΈΡ‚Ρ‹ всСгда Π½ΡƒΠ»ΠΈ. Π’ΠΎΡ‚ это ΠΏΡƒΡΡ‚ΡƒΡŽΡ‰Π΅Π΅ мСсто Dart ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊ Ρ„Π»Π°ΠΆΠΎΠΊ.

ПослСдний Π±ΠΈΡ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Π΅ΠΌ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅:

πŸ”Ή1 - ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

πŸ”Ή0 - число, ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎ адрСсу Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π»Π΅ΠΆΠΈΡ‚ ΠΏΠΎ адрСсу 0x00A03F50. Π­Ρ‚ΠΎΡ‚ адрСс ΠΊΡ€Π°Ρ‚Π΅Π½ 16. Π’ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ послСдний Π±Π°ΠΉΡ‚: 0101 0000. Dart ставит Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π² ΠΊΠΎΠ½Ρ†Π΅: 0101 0001 β†’ 0x00A03F51. Π’Π΅ΠΏΠ΅Ρ€ΡŒ это ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ адрСс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠΉΡ‚ΠΈ Π΄ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ эту Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ исходный адрСс.


Smi: числа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΆΠΈΠ²ΡƒΡ‚ Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅:

Если число умСщаСтся Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅, ΠΎΠ½ΠΎ называСтся smi (small integer). Smi Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСста Π² ΠΊΡƒΡ‡Π΅. Оно ΠΆΠΈΠ²Π΅Ρ‚ прямо Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅. Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора Π·Π° Π½ΠΈΠΌ Π½Π΅ слСдит.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: число 7 = 111 Π² Π±ΠΈΡ‚Π°Ρ…. Когда Dart ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² smi, ΠΎΠ½ сдвигаСт Π±ΠΈΡ‚Ρ‹ Π²Π»Π΅Π²ΠΎ Π½Π° 1 ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ 1110. Ноль Π½Π° ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это число, Π° Π½Π΅ ссылка. ΠŸΡ€ΠΈ распаковкС число дСлится Π½Π° 2, возвращая исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.


Handles - ΠΏΠΎΡ‡Π΅ΠΌΡƒ C++ Π½Π΅ тСряСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹:

Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора пСриодичСски Π΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² памяти, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠ΅Ρ€Π΅Π΅Π·ΠΆΠ°Π΅Ρ‚ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ адрСс. Для Dart-ΠΊΠΎΠ΄Π° это Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° - сборщик Π·Π½Π°Π΅Ρ‚ всС ссылки ΠΈ обновляСт ΠΈΡ….

Но Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° C++ (Π΄Π²ΠΈΠΆΠΎΠΊ, Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ). Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ Π½Π΅ Π·Π½Π°Π΅Ρ‚, Π³Π΄Π΅ Ρƒ C++ Π»Π΅ΠΆΠ°Ρ‚ ссылки. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠ΅Ρ€Π΅Π΅Π΄Π΅Ρ‚, C++ останСтся со старым адрСсом - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΠΏΠ°Π΄Π΅Ρ‚.

РСшСниС: handles. Π­Ρ‚ΠΎ ссылка Π½Π° ссылку. C++ Π΄Π΅Ρ€ΠΆΠΈΡ‚ Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° handle с адрСсом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Когда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠ΅Ρ€Π΅Π΅Π·ΠΆΠ°Π΅Ρ‚, сборщик обновляСт адрСс Π²Π½ΡƒΡ‚Ρ€ΠΈ handle. C++ всСгда смотрит Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ адрСс Ρ‡Π΅Ρ€Π΅Π· handle.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Dart управляСт ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Ρ…ΠΈΡ‚Ρ€ΠΎ, Π½ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ хранят Π»ΠΈΠ±ΠΎ числа (smi), Π»ΠΈΠ±ΠΎ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ опрСдСляСтся послСдним Π±ΠΈΡ‚ΠΎΠΌ. Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ слСдит Π·Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² ΠΊΡƒΡ‡Π΅, Π½ΠΎ Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°Π΅Ρ‚ числа. Handles Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с C++ ссылками ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это Π·Π½Π°Ρ‡ΠΈΡ‚: числа Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ - Π΄Π°. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ сборщика. ПониманиС этих основ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ эффСктивный ΠΊΠΎΠ΄.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
7800010
Video
πŸ‘¨β€πŸ’» ΠšΠΎΠ½Π΅Ρ† Π·ΠΎΠ»ΠΎΡ‚ΠΎΠΉ Π»ΠΈΡ…ΠΎΡ€Π°Π΄ΠΊΠΈ: ΠΊΠ°ΠΊ измСнились ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ³Ρ€Ρ‹ Π² ИВ-индустрии.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ, ΠΊΡ‚ΠΎ слСдит Π·Π° ИВ, рСгулярно сталкиваСтся с ΠΌΡ€Π°Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π°ΠΌΠΈ: Β«Ρ€Ρ‹Π½ΠΎΠΊ ΡƒΠΌΠ΅Ρ€Β», «вакансий Π½Π΅Ρ‚Β», «ИИ всСх Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Β». ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ заявлСния Ρ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ Ρ‚Ρ€Π΅Π²ΠΎΠ³Ρƒ ΠΈ сомнСния, особСнно Ρƒ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ свой ΠΏΡƒΡ‚ΡŒ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Однако, Ссли ΠΎΡ‚Π²Π»Π΅Ρ‡ΡŒΡΡ ΠΎΡ‚ эмоций ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ структурно, становится понятно: ΠΌΡ‹ стали свидСтСлями Π½Π΅ ΠΊΠΎΠ½Ρ†Π° индустрии, Π° Π΅Π΅ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎΠ³ΠΎ, Π½ΠΎ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎΠ³ΠΎ взрослСния. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ эпоха Π»Π΅Π³ΠΊΠΈΡ… Π΄Π΅Π½Π΅Π³ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ трудоустройства для всСх подряд.


Π­ΠΏΠΎΡ…Π° Π·ΠΎΠ»ΠΎΡ‚ΠΎΠΉ Π»ΠΈΡ…ΠΎΡ€Π°Π΄ΠΊΠΈ ΠΈ Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅:

ПослСднСС дСсятилСтиС Π±Ρ‹Π»ΠΎ Π°Π½ΠΎΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ роста для ИВ. Бпрос Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Компании Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π±Ρ‹Π»ΠΈ Π½Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ спСциалистов с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ послС Π½Π΅ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… курсов, прСдлагая ΠΏΡ€ΠΈ этом конкурСнтоспособныС ΠΏΠΎ мСстным ΠΌΠ΅Ρ€ΠΊΠ°ΠΌ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹. Π­Ρ‚ΠΎ создало иллюзию, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² ИВ ΠΈ быстро вырасти - это простая ΠΈ быстрая Π΄ΠΎΡ€ΠΎΠ³Π° ΠΊ финансовому успСху.


ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ измСнились - ΠΊΠ°ΠΊ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² эпоху Π²Ρ‹Π±ΠΎΡ€Π°:

Битуация сСгодня - это СстСствСнная нормализация. Π˜Π½Π΄ΡƒΡΡ‚Ρ€ΠΈΡ пСрСстаСт Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠ΅ΠΉ ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΆΠΈΡ‚ΡŒ ΠΏΠΎ ΠΎΠ±Ρ‰ΠΈΠΌ для Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹Ρ… экономик Π·Π°ΠΊΠΎΠ½Π°ΠΌ, Π³Π΄Π΅ цСнят Π½Π΅ просто Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ спСциалиста, Π° Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ экспСртизу.

πŸ”ΉΠ Π°Π±ΠΎΡ‚ΠΎΠ΄Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚. Если Ρ€Π°Π½ΡŒΡˆΠ΅ компаниям часто ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ откликнулся, Ρ‚ΠΎ сСйчас Π½Π° ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ сотни ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ². Π­Ρ‚ΠΎ позволяСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π΅ просто Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚ синтаксис языка, Π° Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящим Π½Π°Π±ΠΎΡ€ΠΎΠΌ hard ΠΈ soft скиллов, ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ бизнСс-контСкст ΠΈ ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ комплСксныС Π·Π°Π΄Π°Ρ‡ΠΈ.

πŸ”ΉΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΠΈΠ·ΠΌ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ»Π°Π½. Π­ΠΏΠΎΡ…Π°, ΠΊΠΎΠ³Π΄Π° Π³ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‹Ρ‚Π° Π² Ρ€Π΅Π·ΡŽΠΌΠ΅ автоматичСски Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ высокий ΠΎΡ„Ρ„Π΅Ρ€, ΡƒΡ…ΠΎΠ΄ΠΈΡ‚. Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ прСдставляСт Π½Π΅ стаТ сам ΠΏΠΎ сСбС, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ, качСство ΠΊΠΎΠ΄Π°, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΡƒΠΌΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈ Π±Ρ€Π°Ρ‚ΡŒ Π½Π° сСбя ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ.


ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Π² ΠΈΡ‚ΠΎΠ³Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ для индустрии ΠΈ для настоящих спСциалистов:

πŸ”ΉΠ”Π»Ρ бизнСса: сниТаСтся доля балласта - сотрудников, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ приносят Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠΉ цСнности. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΎΠ±Ρ‰ΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄, сниТаСт ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ качСствСнныС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹.

πŸ”ΉΠ”Π»Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²: ΠΈΠ· отрасли уходят Ρ‚Π΅, для ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ лишь способом Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· особой страсти ΠΊ Π΄Π΅Π»Ρƒ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ спСциалисты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΡŽΠ±ΡΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ стрСмятся Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΊΠΎΠ»Π»Π°Π±ΠΎΡ€Π°Ρ†ΠΈΠΈ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±ΠΎΠ»Π΅Π΅ осмыслСнной.

πŸ”ΉΠ”Π»Ρ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²: исчСзаСт иллюзия быстрого ΠΈ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ успСха. Π­Ρ‚ΠΎ заставляСт Π±ΠΎΠ»Π΅Π΅ осознанно ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρ‹, Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π΅Π΅ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈ сразу Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠΈ. Π’Π΅, ΠΊΡ‚ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡŽ ΠΈΠ· интСрСса ΠΈ Π³ΠΎΡ‚ΠΎΠ² Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅, Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ΅.


БтратСгия выТивания ΠΈ успСха Π² Π½ΠΎΠ²Ρ‹Ρ… условиях:

Адаптация ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ дСйствий:

πŸ”ΉΠ“Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ освоСниС стСка ΠΈ смСТных областСй. ΠŸΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ Π±Ρ‹Ρ‚ΡŒ просто ΠΊΠΎΠ΄Π΅Ρ€ΠΎΠΌ. Π˜Π·ΡƒΡ‡Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ DevOps, Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ бизнСс-процСссов Π² своСй ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ-области.

πŸ”ΉΠ˜Π½Π²Π΅ΡΡ‚ΠΈΡ†ΠΈΠΈ Π² софт-скиллы. Π£ΠΌΠ΅Π½ΠΈΠ΅ ясно ΠΈΠ·Π»Π°Π³Π°Ρ‚ΡŒ мысли, ΠΏΡ€Π΅Π·Π΅Π½Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ свои Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈ конструктивно Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ стало критичСски Π²Π°ΠΆΠ½Ρ‹ΠΌ.

πŸ”ΉΠ£ΠΌΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ сСбя. ΠšΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ Ρ€Π΅Π·ΡŽΠΌΠ΅, ΡƒΡ…ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ LinkedIn/GitHub ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ соц. сСти, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ своих достиТСниях ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π½Π° собСсСдовании - это ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ соврСмСнного Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

πŸ”ΉΠΠ΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅. Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ (Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, язык ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°) - это Π½Π΅ опция, Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ.


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

ВСзис «ИВ-индустрия ΡƒΠΌΠ΅Ρ€Π»Π°Β» - это ΡΠΌΠΎΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ рСакция Π½Π° ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ эпохи аномально высокого ΠΈ Π½Π΅ всСгда заслуТСнного спроса. Π Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ индустрия Π½Π΅ ΡƒΠΌΠ΅Ρ€Π»Π°, ΠΎΠ½Π° повзрослСла ΠΈ стала Π±ΠΎΠ»Π΅Π΅ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎΠΉ, сСлСктивной ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ. Π­Ρ‚ΠΎ слоТный, Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ Ρ€Ρ‹Π½ΠΊΠ°, Π³Π΄Π΅ Ρ†Π΅Π½ΠΈΠ»Π°ΡΡŒ масса, ΠΊ Ρ€Ρ‹Π½ΠΊΡƒ, Π³Π΄Π΅ Π² Ρ†Π΅Π½Π΅ - качСство ΠΈ экспСртиза.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
685007
Video
πŸ‘£ Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Flutter-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° iPhone Π±Π΅Π· Mac ΠΈ подписки Apple Developer

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚! НСдавно наткнулся Π½Π° ΡΡ‚Π°Ρ‚ΡŒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ дСлится ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ тСстирования Flutter-прилоТСния Π½Π° iPhone Π΄Ρ€ΡƒΠ³Π° Π±Π΅Π· Mac ΠΈ Π±Π΅Π· подписки Apple Developer. Знакомая ситуация: Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Flutter, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ с iPhone. Mac Π½Π΅Ρ‚, ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ $99 Π² Π³ΠΎΠ΄ Π·Π° Apple Developer Program ΠΆΠ°Π»ΠΊΠΎ. ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, Π΅ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡƒΡ‚ΡŒ, ΠΈ Π°Π²Ρ‚ΠΎΡ€ Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описал. НС магия, Π° грамотная сборка Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… инструмСнтов.


ΠŸΠΎΡ‡Π΅ΠΌΡƒ iOS слоТнСС Android:

На Android тСстовая установка Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚. Π’ΠΊΠ»ΡŽΡ‡ΠΈΠ» ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΠΎ USB, запустил adb install, Π³ΠΎΡ‚ΠΎΠ²ΠΎ. Google Play Console - $25 Π΅Π΄ΠΈΠ½ΠΎΡ€Π°Π·ΠΎΠ²ΠΎ. RuStore - бСсплатно.

Π‘ iPhone всС ΠΈΠ½Π°Ρ‡Π΅. ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Apple: Mac для Xcode, подписка $99 Π² Π³ΠΎΠ΄, TestFlight. Π”ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ Π½Π΅ всСгда доступно.


Π‘Ρ…Π΅ΠΌΠ° ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… шагов:

Π•ΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обходится Π±Π΅Π· Mac ΠΈ Π±Π΅Π· ΠΏΠ»Π°Ρ‚Π½ΠΎΠΉ подписки.

πŸ”΅ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг: Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π° iPhone Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Начиная с iOS 16, Apple вынСсла этот Ρ‚ΡƒΠΌΠ±Π»Π΅Ρ€ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π», Π½ΠΎ ΠΎΠ½ Π½Π΅ появляСтся, ΠΏΠΎΠΊΠ° Π½Π° устройство Π½Π΅ установлСно dev-signed ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ это, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Tenorshare iCareFone Π½Π° Windows. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½, Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ Β«Enable Developer ModeΒ», ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚Π΅ Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅. Π’ΡƒΠΌΠ±Π»Π΅Ρ€ появляСтся Π² настройках. Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

πŸ”΅Π’Ρ‚ΠΎΡ€ΠΎΠΉ шаг: ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ нСподписанный .ipa Ρ‡Π΅Ρ€Π΅Π· GitHub Actions. Π’ бСсплатных macOS-Ρ€Π°Π½Π½Π΅Ρ€Π°Ρ… запускаСтся сборка Flutter ΠΏΠΎΠ΄ iOS. Π’Π°ΠΆΠ½ΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Flutter, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ flutter precache --no-android --no-web для экономии Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ с Ρ„Π»Π°Π³ΠΎΠΌ --no-codesign. ПослС сборки Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ сохраняСтся Π² Actions.

πŸ”΅Π’Ρ€Π΅Ρ‚ΠΈΠΉ шаг: ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Sideloadly Π½Π° Windows. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° подписываСт .ipa вашим бСсплатным Apple ID ΠΈ ставит Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΏΠΎ USB. Подпись дСйствуСт сСмь Π΄Π½Π΅ΠΉ, максимум Ρ‚Ρ€ΠΈ прилоТСния ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Для тСстирования достаточно.

πŸ”΅Π§Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ шаг: ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ Π½Π° устройствС. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС iOS попросит ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π² настройках. Один Ρ€Π°Π· - ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся.


ΠΡŽΠ°Π½ΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ:

πŸ”΅Π£ бСсплатного Apple ID подпись ΠΆΠΈΠ²Π΅Ρ‚ 7 Π΄Π½Π΅ΠΉ. Π§Π΅Ρ€Π΅Π· нСдСлю ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ пСрСстанСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ - Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ°Ρ‚Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Sideloadly.

πŸ”΅Sideloadly ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ Bundle ID, добавляя суффикс. Π’ этом случаС ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΎΠ΅, Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ сбросятся.

πŸ”΅Π•ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Firebase, Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π˜Π½Π°Ρ‡Π΅ сборка Π½Π° CI ΡƒΠΏΠ°Π΄Π΅Ρ‚.

πŸ”΅Π’Π΅Ρ€ΡΠΈΡŽ macOS-Ρ€Π°Π½Π½Π΅Ρ€Π° Π»ΡƒΡ‡ΡˆΠ΅ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ явно, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ macos-latest ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° Π½ΠΎΠ²Ρ‹Π΅ вСрсии ΠΈ сборка ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒΡΡ.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Π’Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Flutter-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° iPhone Π±Π΅Π· Mac ΠΈ Π±Π΅Π· $99 Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ. Π‘Ρ…Π΅ΠΌΠ° ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… инструмСнтов Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Основная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ Π² настройкС, Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ всС куски ΠΈ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΎΠ΄Π½ΠΎ Ρ†Π΅Π»ΠΎΠ΅.

Для ΠΈΠ½Π΄ΠΈ-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° это Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ·ΡŒΡΠΌ ΠΈ тСстировщикам. Для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° Π² App Store придСтся Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ вопрос с ΠΎΠΏΠ»Π°Ρ‚ΠΎΠΉ подписки. Но тСстированиС Π½Π° ΠΆΠ΅Π»Π΅Π·Π΅ пСрСстаСт Π±Ρ‹Ρ‚ΡŒ Π±Π°Ρ€ΡŒΠ΅Ρ€ΠΎΠΌ.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
2,260005
Video
πŸ‘¨β€πŸ’» Когда вакансий мСньшС, Π° Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ большС: стратСгия выТивания Π² ИВ.

Π Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρ‹ ΠΎ кризисС Π² ИВ ΡƒΠΆΠ΅ Π½Π΅ паничСскиС слухи, Π° констатация Ρ„Π°ΠΊΡ‚Π°. Вакансий мСньшС, Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹ Π·Π°ΠΌΠ΅Ρ€Π»ΠΈ, конкурСнция выросла Π² Ρ€Π°Π·Ρ‹. Но Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ: Ρ€Ρ‹Π½ΠΎΠΊ Π½Π΅ ΡƒΠΌΠΈΡ€Π°Π΅Ρ‚, ΠΎΠ½ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ мСняСтся. Π­ΠΏΠΎΡ…Π°, ΠΊΠΎΠ³Π΄Π° достаточно Π±Ρ‹Π»ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ нСсколько ΠΎΡ„Ρ„Π΅Ρ€ΠΎΠ² Π² нСдСлю, Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ. НачинаСтся Ρ„Π°Π·Π°, Π³Π΄Π΅ Π²Ρ‹ΠΆΠΈΠ²ΡƒΡ‚ Π½Π΅ просто тСхничСски ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅, Π° Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈ стратСгичСски мыслящиС спСциалисты.


Π§Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ происходит:

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ИВ стал Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ измСнился Ρ‚ΠΈΠΏ спроса. РаньшС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ массово Π½Π°Π½ΠΈΠΌΠ°Π»ΠΈ Β«Π½Π° рост», создавая ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с запасом. БСгодня ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½Π°ΠΉΠΌ - это Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠ΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π±ΠΎΠ»Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ. ΠžΡ‚ΡΡŽΠ΄Π° ΠΏΠ°Ρ€Π°Π΄ΠΎΠΊΡΠ°Π»ΡŒΠ½Ρ‹Π΅, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, Ρ‚Ρ€Π΅Π½Π΄Ρ‹:

πŸ”Ή Бпрос Π½Π° ΡƒΠ·ΠΊΠΈΡ… экспСртов, Π° Π½Π΅ спСциалистов ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ профиля: Ρ€Π°Π½ΡŒΡˆΠ΅ цСнился Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π² backend, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΎ frontend. БСйчас Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ смСщаСтся Π² сторону Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ экспСртизы Π² ΠΎΠ΄Π½ΠΎΠΉ, Π½ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎΠΉ для бизнСса области.

πŸ”Ή ИИ Π½Π΅ Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ: ΠΎΠ½ мСняСт Π΅Π΅ ΠΏΠΎΡ€ΠΎΠ³ Π²Ρ…ΠΎΠ΄Π°. Автоматизация Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΠ½Π³Π° ΠΈ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ скрининга Ρ€Π΅Π·ΡŽΠΌΠ΅ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ† профСссии. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π²Ρ‹ΠΊΠ° написания ΠΊΠΎΠ΄Π° ΠΏΠ°Π΄Π°Π΅Ρ‚. Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ слоТных, нСстандартных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ - Π²Π·Π»Π΅Ρ‚Π°Π΅Ρ‚. Если ваша Ρ€Π°Π±ΠΎΡ‚Π° сводилась ΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρƒ Π’Π— Π² ΠΊΠΎΠ΄, Π²Ρ‹ Π² Π·ΠΎΠ½Π΅ риска.

πŸ”Ή ΠšΡ€ΠΈΠ·ΠΈΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚Π°, Π° Π½Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: сильнСС всСго сокращСния ΡƒΠ΄Π°Ρ€ΠΈΠ»ΠΈ ΠΏΠΎ слоям управлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ приносят прямого тСхничСского ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. РастСт спрос Π½Π° Π΄Π²Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹Π΅ Ρ€ΠΎΠ»ΠΈ:

πŸ”ΉΠ‘ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π΅Ρ…Π»ΠΈΠ΄/Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ.

πŸ”ΉΠΠ²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ senior-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам Π²Π΅Π΄Π΅Ρ‚ Ρ„ΠΈΡ‡Ρƒ ΠΎΡ‚ ΠΈΠ΄Π΅ΠΈ Π΄ΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π°.


Новая систСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ - Ρ‡Ρ‚ΠΎ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ:

РаньшС Ρ‡Π΅ΠΊ-лист Π±Ρ‹Π» прост: стСк ΠΈ ΠΎΠΏΡ‹Ρ‚. БСгодня Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ»Π°Π½ выходят ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слоТнСС ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ, Π½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ:

πŸ”Ή Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Π° Π½Π΅ Π·Π°Π½ΡΡ‚ΠΎΡΡ‚ΡŒ. НС «я Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ X 3 Π³ΠΎΠ΄Π°Β», Π° «я спроСктировал ΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΠ» систСму ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, которая снизила p95-Π»Π°Ρ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ API с 2с Π΄ΠΎ 200мс ΠΈ сэкономила X Π½Π° инфраструктурС».

πŸ”Ή ВлияниС Π½Π° бизнСс-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ всС Ρ‡Π°Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΊΠΎΠ΄ влияСт Π½Π° LTV, ΠΊΠΎΠ½Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ»ΠΈ ΡƒΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π’Ρ‹ пСрСстаСтС Π±Ρ‹Ρ‚ΡŒ исполнитСлСм Π·Π°Π΄Π°Ρ‡ ΠΈ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ΡΡŒ соучастником бизнСса.

πŸ”Ή Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ обучСния ΠΈ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ. ВСхнологичСский стСк устарСваСт быстрСС. ЦСнится Π½Π΅ Π·Π½Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π·Π° 2-3 Π½Π΅Π΄Π΅Π»ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ Π² Π½ΠΎΠ²ΡƒΡŽ для сСбя Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ ΠΈΠ»ΠΈ Π΄ΠΎΠΌΠ΅Π½ ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·Ρƒ.


Π’Π°ΠΊΡ‚ΠΈΠΊΠ° выТивания ΠΈ роста Π² Π½ΠΎΠ²Ρ‹Ρ… условиях:

БтратСгия «просто ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚ΡƒΒ» большС Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. НуТна активная позиция.

πŸ”Ή Π˜Π½Π²Π΅ΡΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π² экспСртизу. Π“Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠ΄Π½Ρƒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ плюс ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ смСТных процСссов.

πŸ”Ή Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ. GitHub с ΠΏΠ΅Ρ‚-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ - это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ нСдостаточно. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ (Π² Π±Π»ΠΎΠ³Π΅, Π½Π° ΠΌΠΈΡ‚Π°ΠΏΠ°Ρ…) Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ слоТных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π­Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Π²Π°ΡˆΡƒ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΡŽ экспСрта, которая становится самым ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π°ΠΊΡ‚ΠΈΠ²ΠΎΠΌ Π½Π° сТавшСмся Ρ€Ρ‹Π½ΠΊΠ΅.

πŸ”Ή Π‘Π΄Π²ΠΈΠ³Π°ΠΉΡ‚Π΅ΡΡŒ Π² сторону ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ. ΠŸΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΡŒΡ‚Π΅ Π±Ρ‹Ρ‚ΡŒ просто «исполнитСлСм Π·Π°Π΄Π°Ρ‡Β». НачинайтС Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ вопросы: Β«ΠšΠ°ΠΊΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΡ‹ Ρ€Π΅ΡˆΠ°Π΅ΠΌ?Β», «Как ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΠΌ успСх этой Ρ„ΠΈΡ‡ΠΈ?Β». Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ мыслят ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈ-ΠΏΡ€ΠΎΠ΄Π°ΠΊΡ‚-ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹, становятся Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌΠΈ.

πŸ”Ή Π‘Ρ‚Ρ€ΠΎΠΉΡ‚Π΅ ΡΠ΅Ρ‚ΡŒ, Π° Π½Π΅ просто рассылайтС Ρ€Π΅Π·ΡŽΠΌΠ΅. Π’ условиях, ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΎΠ΄Π½Ρƒ вакансию приходят сотни ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠΎΠ², Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ часто ΠΈΠ³Ρ€Π°Π΅Ρ‚ рСкомСндация ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ. Активно ΠΎΠ±Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ с ΠΊΠΎΠΌΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ, выступайтС, вноситС Π²ΠΊΠ»Π°Π΄ Π² open-source. Π’Π°ΡˆΠ° ΡΠ΅Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² - это ваш запасной ΠΏΠ°Ρ€Π°ΡˆΡŽΡ‚.


πŸ”— Бсылка Π½Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ кризис Π² ИВ - это Π½Π΅ апокалипсис, Π° Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½Ρ‹ΠΉ, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ Ρ€Ρ‹Π½ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π³Ρ€Π΅Ρ‚ΠΎΠ³ΠΎ спроса ΠΊ Ρ€Ρ‹Π½ΠΊΡƒ взвСшСнного, осмыслСнного спроса. Он отсСиваСт Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΏΡ€ΠΈΡˆΡ‘Π» Π² ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡŽ Π·Π° Β«Π»Π΅Π³ΠΊΠΈΠΌΠΈ дСньгами», ΠΈ укрСпляСт ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ относится ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠ°ΠΊ ΠΊ рСмСслу ΠΈ стратСгичСской Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ бизнСса.


➑️ ΠšΠΎΡ‚ ДСнисова
341006
Video
πŸ‘£ Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ для Android ΠΈ iOS Π²ΠΎ Flutter-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π½Π° домашнСм экранС - это быстрый способ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π±Π΅Π· нСобходимости ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Погода, Π·Π°Π΄Π°Ρ‡ΠΈ, увСдомлСния, статистика - всС это ΠΌΠΎΠΆΠ½ΠΎ вынСсти Π½Π° Π³Π»Π°Π²Π½Ρ‹ΠΉ экран. Π’ΠΎ Flutter Π½Π΅Ρ‚ встроСнных срСдств для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ инструмСнты ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° home_widget, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΡ… ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.


Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹:

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ - это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ интСрфСйса Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС устройства. Он ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ прСдоставляСт доступ ΠΊ дСйствиям Π±Π΅Π· запуска прилоТСния.

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²:

πŸ”΅Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ - ΠΏΠΎΠ³ΠΎΠ΄Ρƒ, курс Π²Π°Π»ΡŽΡ‚, количСство шагов. Они ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

πŸ”΅Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ нСсколько элСмСнтов ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° - Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, послСдниС ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈΠ· новостного прилоТСния ΠΈΠ»ΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈΠ· Π³Π°Π»Π΅Ρ€Π΅ΠΈ.

πŸ”΅Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ управлСния ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ быстрый доступ ΠΊ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ дСйствиям - запуск поиска, созданиС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π΅Π΅Ρ€ΠΎΠΌ.

πŸ”΅Π“ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². НапримСр, ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ‚Ρ€Π΅ΠΊ (информационная Ρ‡Π°ΡΡ‚ΡŒ) ΠΈ прСдоставляСт ΠΊΠ½ΠΎΠΏΠΊΠΈ управлСния (ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ).


НативныС инструмСнты:

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свой Π½Π°Π±ΠΎΡ€ инструмСнтов.

На Android Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ двумя способами: Ρ‡Π΅Ρ€Π΅Π· XML ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Jetpack Glance. Glance - Π±ΠΎΠ»Π΅Π΅ соврСмСнноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° основС Compose. Оно позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π½Π΅ Π·Π°ΠΌΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡΡΡŒ с XML-ΠΌΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ состояниями. Glance ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Compose: тСкст, ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹.

На iOS Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· WidgetKit, доступный с iOS 14. Они ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½Π° SwiftUI ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² экосистСму Apple. WidgetKit Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с TimelineProvider, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ расписаниС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ Entry - модСлью Π΄Π°Π½Π½Ρ‹Ρ… для Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.


Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° home_widget:

Для связи Flutter-прилоТСния с Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° home_widget. Она прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для сохранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ обновлСния Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ².

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

πŸ”΅saveWidgetDataΒ - сохраняСт Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.

πŸ”΅updateWidgetΒ - обновляСт Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π½Π° экранС.

πŸ”΅getWidgetDataΒ - Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Flutter.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:


Future<void> _sendAndUpdate(int? value) async {
await HomeWidget.saveWidgetData(_countKey, value);
await HomeWidget.updateWidget(
androidName: 'CounterGlanceWidgetReceiver',
iOSName: 'CounterWidget'
);
}


Π‘Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· saveWidgetData, Π·Π°Ρ‚Π΅ΠΌ вызываСтся updateWidget с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ - это ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ способ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π²ΠΎΠ²Π»Π΅Ρ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π’ΠΎ Flutter Π½Π΅Ρ‚ встроСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², Π½ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ инструмСнты. На Android - Glance (ΠΈΠ»ΠΈ классичСскиС XML-Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹). На iOS - WidgetKit.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° home_widget связываСт Flutter-ΠΊΠΎΠ΄ с Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, позволяя ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΈΠ· Dart. Π­Ρ‚ΠΎ Π½Π΅ самый простой ΠΏΡƒΡ‚ΡŒ, Π½ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π² своС Flutter-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ с изучСния Glance для Android ΠΈ WidgetKit для iOS. А Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° home_widget ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всС Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ.


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ
693007
Video
πŸ‘£ Plumix: Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСносит Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Flutter Π² ΠΌΠΈΡ€ .NET

НашСл ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ Π½Π° Π₯Π°Π±Ρ€Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π•Π³ΠΎΡ€ рассказываСт ΠΎ своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Plumix - Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСносит Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Flutter Π² ΠΌΠΈΡ€ .NET. Автор чСстно дСлится, ΠΏΠΎΡ‡Π΅ΠΌΡƒ затСял эту Π°Π²Π°Π½Ρ‚ΡŽΡ€Ρƒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ИИ-Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ Plumix сСйчас. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассказано ΠΏΡ€ΠΎ боль дСсктопной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Flutter, ΠΏΡ€ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ ΠΎΡ‚ Avalonia ΠΈ ΠΏΡ€ΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Π°Ρ€ΠΎΠΊ ΠΎΡ‚ Google Π² Π²ΠΈΠ΄Π΅ Impeller.


ΠŸΠΎΡ‡Π΅ΠΌΡƒ Flutter Π½Π° дСсктопС - боль:

Π‘ мобильной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π½Π° Flutter всС ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. Hot reload, дСкларативная вСрстка, Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ощущСния - Π°Π²Ρ‚ΠΎΡ€ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅. А Π²ΠΎΡ‚ дСсктоп - другая история. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Ρ‹ ΠΏΠΎΠ΄ дСсктоп Π½Π΅ Π·Π°Ρ‚ΠΎΡ‡Π΅Π½Ρ‹. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π° дСсятки тысяч строк, контСкстныС мСню, drag-and-drop - всС это Π»ΠΈΠ±ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Ρ€ΡƒΠΊΠ°ΠΌΠΈ, Π»ΠΈΠ±ΠΎ собираСтся ΠΈΠ· сторонних ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Ρ€Π°Π·Π½ΠΎΠΉ стСпСни Π·Π°Π±Ρ€ΠΎΡˆΠ΅Π½Π½ΠΎΡΡ‚ΠΈ. ДСсктоп Π½Π° Flutter часто ощущаСтся ΠΊΠ°ΠΊ ΠΌΠΎΠ±ΠΈΠ»ΠΊΠ°, растянутая Π½Π° вСсь ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€.

Π‘ Avalonia Ρ€ΠΎΠ²Π½ΠΎ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. ДСсктопы Π½Π° Π½Π΅ΠΉ ΠΏΠΈΡˆΡƒΡ‚ΡΡ с ΠΊΠ°ΠΉΡ„ΠΎΠΌ: DataGrid, мСню, Ρ…ΠΎΡ‚ΠΊΠ΅ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΡ‹ΡˆΡŒΡŽ - всС Ρ€ΠΎΠ΄Π½ΠΎΠ΅. А ΠΌΠΎΠ±ΠΈΠ»ΠΊΠ° - боль. НСт Ρ„ΠΈΠ·ΠΈΠΊΠΈ скролла, Π½Π΅Ρ‚ ТСстов, Π½Π΅Ρ‚ pull-to-refresh. ВСхничСски запускаСтся, Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ чувствуСт: Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ.

И Π²ΠΎΡ‚ Π½Π° этой Ρ€Π°Π·Π²ΠΈΠ»ΠΊΠ΅ Π°Π²Ρ‚ΠΎΡ€ ΠΈ застрял: для ΠΌΠΎΠ±ΠΈΠ»ΠΊΠΈ хочСтся Flutter, для дСсктопа - Avalonia. Π’Π°ΠΊ появилась идСя Plumix: пСрСнСсти Ρ„Π»Π°Ρ‚Ρ‚Π΅Ρ€ΠΎΠ²ΡΠΊΡƒΡŽ модСль ΠΏΠΎΠ²Π΅Ρ€Ρ… Avalonia. ΠžΡ‚ Flutter - Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Ρ‹, ТСсты, Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ. ΠžΡ‚ Avalonia - зрСлая платформСнная инфраструктура, ΠΎΠΊΠ½Π°, ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ», графичСский бэкСнд.


Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΈΡˆΡƒΡ‚ Π°Π³Π΅Π½Ρ‚Ρ‹:

Π‘Π°ΠΌΠΎΠ΅ интСрСсноС - Ρ€Π°Π±ΠΎΡ‚Π° с ИИ. Автор признаСтся: Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Flutter, систСму ТСстов ΠΈ Sliver-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» - нСподъСмная Π·Π°Π΄Π°Ρ‡Π°. Но Π½Π° Π΄Π²ΠΎΡ€Π΅ 2026 Π³ΠΎΠ΄ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° ΠΈΠ΄Π΅Ρ‚ Π½Π΅ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ.

Plumix строился ΠΊΠ°ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄ ИИ-Π°Π³Π΅Π½Ρ‚ΠΎΠ². НС Β«ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΡˆΡƒ Ρ‡Π°Ρ‚-Π±ΠΎΡ‚Π° Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽΒ», Π° ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€. АгСнт ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ Β«ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉ Material-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» XΒ», сам Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ контСкст, ΠΏΠΈΡˆΠ΅Ρ‚ ΠΊΠΎΠ΄, тСсты ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ. Автор выступаСт Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΈ Ρ€Π΅Π²ΡŒΡŽΠ΅Ρ€ΠΎΠΌ.

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ΅ΠΌ - эталонноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΆΠΈΠ²ΡƒΡ‚ Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… сэмпла: Π½Π° C# ΠΈ Π½Π° Dart. Автор запускаСт ΠΈΡ… рядом ΠΈ сравниваСт Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ поставки: ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π·Π° ΠΎΠ΄Π½Ρƒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ, Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. API, состояния, layout, отрисовка, тСсты - всС Π² ΠΎΠ΄Π½ΠΎΠΌ Π·Π°Ρ…ΠΎΠ΄Π΅. Если Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π°Π³Π΅Π½Ρ‚Ρƒ Π΄Ρ€ΠΎΠ±ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, получаСтся Π²Π΅Ρ‡Π½Ρ‹ΠΉ нСдострой.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° пСрСстало Π±Ρ‹Ρ‚ΡŒ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΈ стало ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½ΠΎΠΉ. Changelog разросся Π΄ΠΎ Ρ‚Π°ΠΊΠΎΠΉ стСпСни, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ввСсти ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ - ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ» ΠΏΠ΅Ρ€Π΅Π²Π°Π»ΠΈΠ²Π°Π΅Ρ‚ Π·Π° 100 ΠšΠ‘, старая ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΡƒΠ΅Π·ΠΆΠ°Π΅Ρ‚ Π² Π°Ρ€Ρ…ΠΈΠ².


Impeller Π² Avalonia - ΠΏΠΎΠ΄Π°Ρ€ΠΎΠΊ для Plumix:

Π’ ноябрС 2025 ΠΊΠΎΠΌΠ°Π½Π΄Π° Avalonia объявила ΠΎ партнСрствС с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Flutter: Π² .NET ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Impeller - GPU-first Ρ€Π΅Π½Π΄Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Google написала для Flutter вмСсто Skia. Π˜Π½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π° исходила ΠΎΡ‚ самого создатСля Impeller - Chinmay Garde.

Для Plumix это Π²Π°ΠΆΠ½ΠΎ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° такая: Plumix Π²Π»Π°Π΄Π΅Π΅Ρ‚ layout’ом ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ отрисовки, Π½ΠΎ пиксСли Π½Π° экран Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ графичСский бэкСнд Avalonia. БСйчас это Skia. Когда Avalonia Π΄ΠΎΠ²Π΅Π΄Π΅Ρ‚ Impeller Π΄ΠΎ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Plumix ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π΅Π³ΠΎ автоматичСски, Π±Π΅Π· Π΅Π΄ΠΈΠ½ΠΎΠΉ строчки ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.


πŸ”— Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

Автор признаСтся: Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ Π±Ρ‹Π» Π±Ρ‹ Π°Π²Π°Π½Ρ‚ΡŽΡ€ΠΎΠΉ. БСгодня, с ИИ-Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ выстроСнным процСссом, это Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π±ΡƒΠ΄Π½ΠΈ. Plumix - это Π½Π΅ просто Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. Π­Ρ‚ΠΎ экспСримСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, насколько Π΄Π°Π»Π΅ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΅Ρ…Π°Ρ‚ΡŒ Π½Π° связкС Β«Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ + ИИ-исполнитСли» Π² слоТном систСмном ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. И, ΠΏΠΎ словам Π°Π²Ρ‚ΠΎΡ€Π°, ΠΎΡ‚Π²Π΅Ρ‚: Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ дальшС, Ρ‡Π΅ΠΌ ΠΎΠ½ Π΄ΡƒΠΌΠ°Π».


ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π½Π°Π»:
➑️ Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ

Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»:
πŸš€ ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ PRO
662005
πŸ‘£ Π§Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ BuildContext Π² Flutter

Для ΠΌΠ½ΠΎΠ³ΠΈΡ… Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² BuildContext остаСтся Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ магичСской ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ - появляСтся ΠΈΠ· Π½ΠΈΠΎΡ‚ΠΊΡƒΠ΄Π°, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚, Π½ΠΎ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ нСпонятно. На самом Π΄Π΅Π»Π΅ это интСрфСйс ΠΊ элСмСнту Π² Π΄Π΅Ρ€Π΅Π²Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². Когда Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, Π²Ρ‹ описываСтС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ. А context - это ваш пропуск ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ сущСствуСт Π² памяти.


Как Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ поиск:

Когда Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Theme.of(context), Flutter Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ контСкста, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚ блиТайшСго ΠΏΡ€Π΅Π΄ΠΊΠ° Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Если Ρƒ вас Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹, context опрСдСляСт, ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠ· Π½ΠΈΡ… Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅.

ΠžΡ‚ΡΡŽΠ΄Π° ΠΈ бСрутся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹: Navigator.of(context) ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ контСкст находится Π²Ρ‹ΡˆΠ΅ Ρ‚ΠΎΠ³ΠΎ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Или Scaffold.of(context) Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚ Scaffold, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ context создан Ρ€Π°Π½ΡŒΡˆΠ΅.


Π“Π΄Π΅ Ρ‡Π°Ρ‰Π΅ всСго ΡΠΏΠΎΡ‚Ρ‹ΠΊΠ°ΡŽΡ‚ΡΡ:

πŸ”΅initState - запрСтная Π·ΠΎΠ½Π°. НСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ context Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² initState. Если Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ экрана, приходится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ addPostFrameCallback. Π˜Π½Π°Ρ‡Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠΏΠ°Π΄Π΅Ρ‚.

πŸ”΅ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ - Π»ΠΎΠ²ΡƒΡˆΠΊΠ°. Π’Ρ‹ сдСлали запрос, ΠΆΠ΄Π°Π»ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ Π·Π°ΠΊΡ€Ρ‹Π» экран. Если ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ старый context Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΡ€Π°Ρˆ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ await Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ if (!context.mounted) return;

πŸ”΅Π”ΠΈΠ°Π»ΠΎΠ³ΠΈ - ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ история. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ контСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π² builder, Π° Π½Π΅ Ρ‚ΠΎΡ‚, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π» снаруТи. Π˜Π½Π°Ρ‡Π΅ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€ Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ.


πŸ”— https://appsell.su/blog/den-apps-1/razrabotka/chto-vazhno-znat-o-buildcontext-v-flutter-249


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄:

BuildContext - это Π½Π΅ магия, Π° просто доступ ΠΊ элСмСнту Π² Π΄Π΅Ρ€Π΅Π²Π΅. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Flutter ΠΈΡ‰Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΊΠΎΠ², ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ mounted ΠΈ ΠΊΠΎΠ³Π΄Π° контСкст ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ - это Π±Π°Π·Π°, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ. Ошибки с контСкстом - ΠΎΠ΄Π½ΠΈ ΠΈΠ· самых частых Ρƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ². И ΠΎΠ½ΠΈ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ Π½Π΅ Π³Π°Π΄Π°Π½ΠΈΠ΅ΠΌ, Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ происходит ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ.


➑️
462006

Showing 30 of 43 posts

Π Π΅ΠΉΡ‚ΠΈΠ½Π³

ВрСбуСтся Π²Ρ…ΠΎΠ΄

Frequently Asked Questions

О Ρ‡Ρ‘ΠΌ Telegram-ΠΊΠ°Π½Π°Π» Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ?+

Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ (@hardworkerflutter) β€” Telegram-ΠΊΠ°Π½Π°Π» Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния Π½Π° tgdio. На ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ Π΅ΡΡ‚ΡŒ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³, ΠΎΡ‚Π·Ρ‹Π²Ρ‹, Ρ€Π°Π½Π³ ΠΈ свСТиС посты β€” Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π΄ΠΎ подписки Π² Telegram. БСйчас Π½Π° tgdio ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΎΠΊΠΎΠ»ΠΎ 414 подписчиков.

Как Π²ΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Π² Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ (@hardworkerflutter) Π² Telegram?+

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΊΠ°Π½Π°Π»Π° Π½Π° tgdio, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Join / Open in Telegram ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° @hardworkerflutter Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π²Π΅Π±-вСрсии Telegram бСсплатно.

Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ (ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния)?+

На tgdio ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³, ΠΎΡ‚Π·Ρ‹Π²Ρ‹, Ρ€Π°Π½Π³ ΠΈ свСТиС посты Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ Π΄ΠΎ подписки. БСйчас Π½Π° tgdio ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΎΠΊΠΎΠ»ΠΎ 414 подписчиков. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ с ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния.

Π“Π΄Π΅ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ статистику ΠΈ посты Flutter & Dart | ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ³ΠΎΠ»ΠΈΠΊ?+

На tgdio ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ страницу @hardworkerflutter: статистика подписчиков, Ρ€Π°Π½Π³, Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ ΠΈ посты. Бсылка Stats Π΄Π°Ρ‘Ρ‚ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ роста ΠΈ активности.