Posted on 14. March 2024

.NET MAUI Community Toolkit 2023 Highlights

Основні моменти .NET MAUI Community Toolkit 2023

 

Коли 2023 рік вже позаду, поміркуймо про шлях проєкту .NET MAUI Community Toolkit і про те, що чекає на нас далі. Ця бібліотека з відкритим вихідним кодом слугує доповненням до .NET MAUI, пропонуючи розробникам багатий набір елементів керування, конвертерів та помічників, призначених для прискорення розробки додатків на платформі .NET MAUI. Орієнтуючись на інновації, керовані спільнотою, вона стала незамінним інструментом для розробників, які прагнуть вдосконалити свої додатки .NET MAUI.

Це був рік, коли

Наш репозиторій на GitHub перетворився на динамічний центр активності, залучивши понад 40 учасників, які колективно просувають проєкт вперед. Ваші відгуки, пропозиції та внески коду допомогли зробити цей інструментарій більш потужним та ефективним ресурсом для розробників .NET MAUI.

У цифрах

 

  • 9 випусків: Відзначаючи постійний прогрес, ми випустили 9 значних випусків, кожен з яких додав більше цінності та можливостей до інструментарію.

  • 260 комітів: З кожним комітом ми покращували та розширювали функціональність інструментарію.

  • Змінено 521 файл: Відображаючи наш прогрес, ми оновили, покращили та оптимізували 521 файл, щоб забезпечити найвищі стандарти якості.

  • 41 дописувач: Велике вітання нашим активним членам спільноти! Ваші різноманітні погляди та досвід були життєво важливими для нашого спільного успіху.

  • Найкращі 5 комітерів: Особлива подяка brminnick, VladislavAntonyuk, jfversluis, pictos та cat0363. Ваша відданість та внесок були зразковими.

  • 4190 репозиторій залежать від нас: Понад 4190 репозиторіїв покладаються на CommunityToolkit.Maui, що є свідченням нашого впливу, який дедалі зростає.

  • 679 767 завантажень з NuGet: Неймовірна кількість завантажень цього року свідчить про широке розповсюдження та довіру до нашого інструментарію.

Важливі доповнення

Окрім величезної кількості виправлень, також додано суттєві можливості протягом 2023 року, ось короткий огляд ключових нових функцій, які ми інтегрували:

image showing the feature list and components of .NET MAUI Community Toolkit v7.0.1

  • Media Element: Пориньте у світ мультимедіа з нашим новим елементом керування Media Element. Незалежно від того, чи ви транслюєте потокове відео з Інтернету, чи використовуєте вбудовані ресурси, чи отримуєте доступ до локальних файлів, цей елемент керування безперешкодно відтворює відео- та аудіоконтент у ваших додатках .NET MAUI.

.NET MAUI Toolkit media element on phone

  • Інтеграція з картами Windows: Наша інтеграція з картами дозволяє використовувати можливості карт .NET MAUI безпосередньо на платформі Windows, покращуючи сервіси на основі визначення місцеперебування у ваших додатках.

  • SpeechToText і розпізнавання мовлення: Розкрийте потенціал голосу за допомогою наших функцій SpeechToText і розпізнавання мовлення. Взаємодійте та керуйте своїми програмами за допомогою усної мови, відкриваючи новий вимір доступності та зручності. Дізнайтеся більше про це в цій статті в блозі.

Відео

 

  • FolderPicker та FileSaver: Виведіть керування файлами на новий рівень. FolderPicker дозволяє користувачам легко переміщатися і вибирати каталоги, а FileSaver надає свободу вибору теки призначення і дозволяє легко зберігати файли.

Відео

 

  • Розширення клавіатури: Отримайте контроль над екранною клавіатурою. Перевіряйте її видимість, приховуйте її або викликайте за бажанням, забезпечуючи більш плавну та інтуїтивно зрозумілу роботу з клавіатурою у ваших додатках .NET MAUI.

  • Badge API: Представляємо Badge API – найпростіше рішення для відображення кількості сповіщень на іконках ваших додатків. Тримайте користувачів в курсі подій та інформуйте їх лише одним переглядом.

  • API для тематизації додатків: Ми розширили можливості стандартного інтерфейсу .NET MAUI, щоб полегшити вам налаштування та тематизацію ваших додатків, створюючи цікавіший та більш адаптований до бренду користувацький інтерфейс.

  • Підтримка .NET 8: Зважаючи на майбутнє, наша команда з гордістю підтримує .NET 8, гарантуючи, що ваші додатки отримають користь від останніх удосконалень, покращень безпеки та продуктивності, які пропонує фреймворк.

Але це ще не все

Інструментарій .NET MAUI Community Toolkit виходить за рамки основного пакета NuGet, ми також пишаємося нашою документацією, розміщеною в нашому репозиторії Docs, і універсальним пакетом .NET MAUI Markup для розробників, які схильні до підходу, що не використовує XAML. Обидва ці  компоненти інструментарію отримують постійні оновлення, про що свідчать:

Репозитарій документів:

  • Комітів: 192

  • Дописувачі: 25

  • Топ-5 дописувачів: bijington, jfversluis, brminnick, Sergio0694, VladislavAntonyuk

Репозиторій розмітки MAUI:

  • Зафіксовано: 104

  • Дописувачі: 9

  • Топ-5 дописувачів: brminnick, Youssef1313, bijington, VladislavAntonyuk, JoonghyunCho

Окрім цього, інструментарій .NET MAUI Community Toolkit з гордістю святкує визначну подію – понад 1 мільйон завантажень, що свідчить про його надійність, міцність та довіру, яку він завоював у спільноті розробників.

nuget download trend

Цей успіх підкреслює роль інструментарію як важливого активу в екосистемі .NET MAUI, що постійно розвивається, щоб дати розробникам можливість створювати неймовірні кросплатформні додатки.




Posted on 6. December 2022

Нові можливості в .NET MAUI Community Toolkit


Нові можливості в .NET MAUI Community Toolkit

 

Листопад був насиченим напрацюваннями для .NET MAUI Community toolkit: вийшло кілька випусків з безліччю дивовижних нових функцій (не кажучи вже про довгий список виправлень помилок). В останніх випусках з’явилися нові подання, макети, підтримка Tizen, підтримка .NET 7 і багато іншого. Ця стаття допоможе вам ознайомитися з усіма новими можливостями.

Що таке .NET Community Toolkit?

Для тих, хто не знайомий з .NET MAUI Community Toolkit, це створена спільнотою бібліотека, яка містить розширення, розширені елементи керування UI/UX, конвертери та поведінку, які допоможуть полегшити ваше життя як .NET MAUI розробника. Це безплатна бібліотека з відкритим вихідним кодом, створена для .NET MAUI розробників самими розробниками .NET MAUI.

 

Розгляньмо деякі важливі нові функції в останніх випусках інструментарію .NET MAUI Community Toolkit.

Подання розгортання

Подання “Розгортання” - це елемент керування контейнером, який дає змогу розгортати та згортати візуальний вміст при натисканні на заголовок. Елемент керування складається з двох частин, заголовка та вмісту. Вміст показується або приховується при натисканні на Expander.Header або при встановленні властивості IsExpanded, що прив’язується.

    

         Text=“Simple Expander (Tap Me)” FontSize=“16” FontAttributes=“Bold”/>

    


     BackgroundColor=“LightGray”>

        

             Text=“Item 1”/>

             Text=“Item 2”/>

        

    

 


Перегляньте детальне відео

DockLayout

DockLayout – це макет, в якому елементи вигляду можуть бути пристиковані до боків контейнера макета. Тому він є чудовим вибором у багатьох ситуаціях, коли потрібно розділити екран на певні області.

 

Цей базовий DockLayout можна створити у XAML ось так:

     toolkit:DockLayout.DockPosition=“Top” Text=“Top” HeightRequest=“50” />

     toolkit:DockLayout.DockPosition=“Bottom” Text=“Bottom” HeightRequest=“70” />

     toolkit:DockLayout.DockPosition=“Left” Text=“Left” WidthRequest=“80” />

     toolkit:DockLayout.DockPosition=“Right” Text=“Right” WidthRequest=“90” />

     Text=“Center” />

 

 

StateContainer

StateContainer дозволяє дуже спростити динамічне відображення контенту на основі стану вашого додатка. Приклади варіюються від створення елементів керування завантаженням до накладання на екран або на частину екрана. Порожні стани можна створювати, коли немає даних для відображення, а стани з помилками можна відображати, коли виникає помилка.

 

Для детальної інформації перегляньте це відео.

 

Підтримка Tizen

Завдяки значному внеску команди Samsung тепер є підтримка Tizen для набору інструментів спільноти .NET MAUI. Це робить інструментарій спільноти .NET MAUI доступним для мільйонів телевізорів, телефонів та інших пристроїв Samsung, що працюють під управлінням Tizen.

 

Дізнатись більше можна за допомогою відео

 

Підтримка .NET 7 

Також було підготовлено випуск .NET MAUI Community Toolkit, побудований на .NET 7, що дозволяє всім тим, хто хоче скористатися перевагами .NET 7, зробити це за допомогою .NET MAUI Community Toolkit.

MAUI.Markup Toolkit

Окрім .NET MAUI Community Toolkit, також є MAUI.Markup Toolkit, який являє собою набір методів розширення Fluent C#, що дозволяє розробникам створювати свої додатки з використанням MVVM, Bindings, Resource Dictionaries і т.д. на C# без необхідності працювати в XAML.

Оновлений набір MAUI.Markup Toolkit додає методи розширення C# для App Themeing та ITextAlignment. Використовуючи генератори вихідних кодів, Maui.Markup автоматично генерує методи розширення для кожного елемента управління ITextAlignment, навіть якщо ви створюєте свій власний елемент управління! Також було додано підтримку .NET 7 для MAUI.Markup.

 

Версії

Існує декілька випусків .NET MAUI Community toolkit, які виходять одна за одною. Варто зробити огляд різних версій:

Версія 1.4.0 – додано Expander, DockLayout та StateContainer (і, звісно, багато виправлень!) - Примітки до випуску

Версія 2.0.0 – додано повну підтримку Tizen для всіх наших функцій, включно зі змінами з версії 1.4.0 - Примітки до випуску

Версія 3.0.0 – все з v1.4.0 та v2.0.0, але побудована на базі .NET 7 – Примітки до випуску

За допомогою цієї стратегії випуску версій планується розширити можливості якомога більшої кількості розробників: кожен, хто використовує .NET 6, може отримати всі функції, які було об’єднано до цього часу, включаючи підтримку Tizen, використовуючи версію 2.0.0. Для тих, хто використовує .NET 7, доступні всі функції, починаючи з версії 3.0.0.

 

Важливо відзначити, що в майбутньому .NET 7 стане ціллю для чудових нових можливостей .NET MAUI Community Toolkit!

Більше ресурсів

Якщо ви хочете дізнатися більше про .NET MAUI Community toolkit, ви можете переглянути це чудове оглядове відео з .NET Conf 2022, де Джеральд Верслуіс розповідає про історію створення Community toolkit, про можливості роботи з ним і як розпочати роботу!

Звісно, ви можете знайти весь вихідний код і приклад програми в репозиторії GitHub, а також ознайомитися з офіційною документацією.

 

Вдалого кодування!



Posted on 9. November 2022

Анонс .NET Community Toolkit v8.1.0 Preview 1

Анонс .NET Community Toolkit v8.1.0 Preview 1

 

Пропонуємо вашій увазі попередню версію 1 майбутнього релізу .NET Community Toolkit 8.1! Ця перша офіційна попередня версія містить кілька дуже запитуваних нових функцій, виправлення помилок і, найголовніше, значне покращення продуктивності генераторів вихідних кодів MVVM Toolkit, завдяки чому користувацький інтерфейс розробника при їх використанні навіть у дуже великих проєктах стане кращим, ніж будь-коли!

Що входить до інструментарію .NET Community Toolkit? 

 

Щоб дати короткий огляд того, що мстить інструментарій .NET Community Toolkit, наведемо перелік бібліотек, з яких він складається:

Бібліотеки також широко використовуються у деяких програмах вхідних повідомлень, що постачаються з Windows, таких як Microsoft Store! 🚀

Для більш детальної інформації про історію розвитку інструментарію .NET Community Toolkit, ознайомтеся з посиланням на попередній пост з анонсом версії 8.0.0.

Ось перелік основних змін, які ви можете очікувати в цьому новому випуску.

Користувацькі атрибути для [ObservableProperty

Однією з найбільш запитуваних функцій (див. #208, #217, #228) для генератора вихідного коду MVVM Toolkit була підтримка використання користувацьких атрибутів для [ObservableProperty]. Було запропоновано декілька проєктів для підтримки цього, і врешті-решт було вирішено використати наявну властивість: синтаксис у C#, який дозволяє розробникам позначати атрибути для розповсюдження на згенеровані властивості. Це дає нам декілька переваг:

 

  • Він використовує вбудований синтаксис C#, що робить функцію “рідною” і не потребує додаткових атрибутів
  • Це розв’язувати проблему анотування атрибутів, які можуть бути спрямовані лише на властивості, а не на поля
Тобто, у MVVM Toolkit 8.1 тепер підтримується наступний сценарій:
Після цього буде згенеровано наступну властивість за лаштунками:

 

Ви можете побачити, як згенерована властивість має два атрибути, які було вказано! Це забезпечує повну гнучкість в анотаціях для згенерованих властивостей, використовуючи вбудований синтаксис C# і без обмежень на типи атрибутів, які підтримуються цією функцією. 🙌

Примітка: згенерований код дещо відрізняється і містить додаткові оптимізації продуктивності, які тут не показано.

Ви можете знайти всі документи про нові генератори вихідних текстів тут, а якщо ви віддаєте перевагу відеоверсії, Джеймс Монтемагно також зробив кілька відео про них, наприклад, це.

Оптимізація генератора вихідних текстів MVVM Toolkit 

Як вже було сказано, ця нова попередня версія також містить значну оптимізацію продуктивності MVVM Toolkit, щоб ще більше покращити UX для розробників, особливо при роботі над дуже великими рішеннями. Команда провела багато часу, покращуючи архітектуру всіх генераторів і спілкуючись з інженерами з команди Roslyn, щоб переконатися, що виконується все можливе, щоб отримати від них максимальну продуктивність.

Ось лише деякі з удосконалень в цьому напрямку:

 

  • Додано багатоцільове націлювання для Roslyn 4.3 (#428, #462): генератори вихідних текстів MVVM Toolkit тепер використовуватимуть ціль Roslyn 4.3, якщо воно підтримується, щоб вони могли підключитися до деяких оптимізованих API, якщо хост це підтримує. Це автоматично вмикається при посиланні на MVVM Toolkit.
  • Використано ForAttributeWithMetadataName (#436): було переключено генератори на новий високорівневий API Roslyn для зіставлення атрибутів, що значно покращує продуктивність генераторів, які спрацьовують за певними атрибутами. Наприклад, [ObservableProperty] тепер використовує це.
  • Перенесено діагностику в діагностичні аналізатори (#433, #434): перенесено майже всю діагностику в діагностичні аналізатори, які виконуються поза процесом і незалежно від генераторів джерел. Це значно зменшує накладні витрати при наборі тексту, оскільки вся логіка діагностики тепер виконується в окремому процесі й не може сповільнювати роботу IntelliSense.
  • Припинено використання символів у інкрементних провайдерах (#435): оновлено всі інкрементні провайдери, щоб більше не поширювати символи. Це може зменшити використання пам’яті, оскільки розповсюдження символів може призвести до того, що Roslyn надмірно викорінюватиме об’єкти компіляції.
  • Більше оптимізацій продуктивності (#447, #460, #469, #487, #489): переглянуто всі наші інкрементні моделі та інкрементні конвеєри, щоб значно покращити продуктивність та зменшити виділення пам’яті.

 

Розширення месенджерів IObservable 

 

Ще однією функцією, яку просили розробники, особливо ті, що активно використовують API у стилі Reactive у своїх додатках, була можливість об’єднати функціональність API месенджерів у MVVM Toolkit. Тепер це підтримується завдяки новим розширенням IObservable для інтерфейсу IMessenger. Ви можете використовувати їх наступним чином:
…І це все! Це розширення створить об’єкт IObservable, який можна використовувати для підписки на повідомлення і динамічної реакції на них. Також підтримується вказівка різних токенів за допомогою окремих перевантажень. Ось ще один приклад, що демонструє наскрізне використання нового API:

Підтримка .NET 7 та C# 11 

Цей новий попередній випуск .NET Community Toolkit також додає .NET 7 TFM до пакета HighPerformance і містить кілька змін, що дозволяють скористатися новими можливостями мови C# 11, зокрема, полями посилань.

Наступні типи більше не знаходяться в режимі попереднього перегляду, вони були оновлені відповідно до нових правил безпеки арбітрів:
Приклад того, де вони можуть бути використані, наведений нижче:
Тобто, тип NullableRef фактично дозволяє методу мати параметр out ref T, який не може бути виражений в C# іншим чином. Також планується розширити поверхню API цих типів у майбутньому, щоб ці типи могли надавати просту у використанні альтернативу GC-реф-арифметиці з використанням типу Unsafe, яка також може бути візуально більш схожою на традиційну арифметику з вказівниками.

Інші зміни 

У цьому новому випуску набагато більше!

Ви можете переглянути повний список змін на сторінці релізу на GitHub.

Почніть вже сьогодні! 

Ви можете знайти весь вихідний код у репозиторії GitHub, деякі рукописні документи на MS learn та повні посилання на API на вебсайт браузера .NET API. Щоб стежити за обговоренням у Twitter, використовуйте хештег #CommunityToolkit. Всі ваші відгуки дуже допомагають формувати напрямок розвитку цих бібліотек, тому обов’язково діліться ними!

Більше ресурсів 

Якщо ви хочете дізнатися більше про MVVM Toolkit, ви також можете переглянути це відео з останньої конференції .NET Conf Focus on MAUI, яка відбулася раніше в цьому році, де показано, як можна використовувати MVVM Toolkit і всі нові функції генератора вихідних кодів для створення MAUI-додатків:

Існує ціла екосистема доступних наборів інструментів з безліччю корисних API для створення .NET-додатків! Налаштуйтеся на майбутню конференцію .NET Conf 2022, щоб дізнатися більше!

Вдалого кодування! 





Posted on 9. October 2022

Анонс .NET MAUI Community Toolkit v1.3

Анонс .NET MAUI Community Toolkit v1.3


Команда розробників рада оголосити про випуск .NET MAUI Community Toolkit версії 1.3, який зараз доступний на NuGet! Цей випуск містить функцію стилізації рядка стану, підтримку зображень Gravatar, попередньо створені анімації зникнення, підтримку SourceLink і численні виправлення помилок.

 

.NET MAUI Community Toolkit — це створена спільнотою бібліотека, яка містить розширення .NET MAUI, розширені елементи керування UI/UX, щоб полегшити ваше життя як розробника .NET MAUI.

Стиль рядка стану

У цьому випуску .NET MAUI Community Toolkit тепер ви отримуєте StatusBarBehavior, який дозволяє легко налаштувати колір і стиль рядка стану на iOS і Android за допомогою коду або в XAML. Це імплементовано як Behavior тобто ви  можете змінювати його на сторінках або навіть динамічно у відповідь на дії користувача або статус програми.

Є дві властивості, за допомогою яких можна керувати виглядом рядка стану:

- StatusBarColor: дозволяє вказати колір тла рядка стану.

- StatusBarStyle: дозволяє контролювати, чи буде вміст (текст і піктограми) у рядку стану світлим, темним або типовим для системи.

 

Примітка. Ці дві властивості є Bindable, тому ви також можете зв’язати ці значення з ваших ViewModels.

Ось приклад використання цих властивостей у XAML:

     StatusBarColor=“HotPink” StatusBarStyle=“LightContent”/>

Або, якщо ви віддаєте перевагу написанню свого інтерфейсу користувача в коді C#:

var statusBehavior = new StatusBarBehavior()

{

    StatusBarColor = Colors.HotPink,

    StatusBarStyle = StatusBarStyle.LightContent

}

this.Behaviors.Add(statusBehavior);

І тепер, за допомогою лише кількох рядків коду, ви маєте чудово оформлений рядок стану, який може відповідати темі вашої програми.

Ви можете прочитати більше про інші функції StatusBarBehavior та переглянути більше прикладів у наших документах. Gerald Versluis також підготував чудове відео, яке демонструє, як почати.

Джерело зображення Gravatar

Gravatar (всесвітньо визнаний аватар) — це зображення, яке можна використовувати як аватар, тобто зображення, яке представляє вас або ваших користувачів, наприклад, у публікації на форумі чи коментарі в блозі. Ви можете дізнатися більше про Gravatar або зареєструвати свій власний на вебсайті Gravatar.

За допомогою цього випуску .NET MAUI Community Toolkit ви можете легко відображати зображення Gravatar поруч з іменами людей або електронними адресами через GravatarImageSource.

Ви можете використовувати GravatarImageSource будь-де, де зазвичай використовуєте ImageSource, наприклад:

    

         Email=“youremail@here.com” />

    

 

 

Властивість Email визначає електронну адресу облікового запису Gravatar. Однак існують також властивості для визначення зображення за замовчуванням, якщо його Email не знайдено в Gravatar, а також вбудовані можливості кешування. Усі ці властивості підтримуються, BindableProperty що означає, що вони можуть бути цілями для зв’язування даних і стилю.

Дізнайтеся більше про інші функції GravatarImageSource та подивіться більше прикладів у наших документах.

 

Анімації

Цей випуск набору інструментів спільноти .NET MAUI розширює наявний AnimationBehavior можливості, додаючи  можливість FadeAnimation анімувати непрозорість VisualElement з початкової непрозорості на вказану нову прозорість, а потім повертатися до оригіналу.

 

Це дозволяє вказати анімацію в XAML, яка відповідає взаємодії користувача.

Text=“Click this Button”>

    

         EventName=“Clicked”>

            

                 Opacity=“0.2”/>

            

        

    

 

У наступних випусках розробники будуть розбудовувати анімації, щоб забезпечити анімацію перевертання, обертання, масштабування та струшування. Внески завжди вітаються, тому, якщо ви хочете допомогти, перегляньте розділ про внески нижче, щоб дізнатися, як це зробити.


Посилання на джерело

 

Source Link — це технологія, яка забезпечує першокласний досвід налагодження вихідного коду для двійкових файлів. У цьому випуску налаштували збірки на використання Source Link, що означає, що якщо ви ввімкнули Source Link у Visual Studio, ви можете очікувати ще кращого досвіду налагодження під час використання .NET MAUI Community Toolkit. Ви можете знайти більше інформації про Source Link і як його ввімкнути в цій публікації блогу.

Інші виправлення

Цей випуск також містить численні виправлення помилок і покращення якості коду. Перегляньте примітки до випуску, щоб отримати повний список змін.