Merhabalar,
Preview 14, Visual Studio 2022 17.2 Preview 2 ile beraber kullanıma sunuldu. Gelen en güzel güncellemelerden biri olduğunu söyleyebilirim. Çünkü tüm özellikler MAUI ile uygulama geliştirirken hayatamızı gerçekten kolaylaştıran özellikler. Bu sürümde, bir önceki sürümlerde olan buglar giderildi, kontrollerdeki beklenen özellikler eklendi ve windows developerlar için yeni özellikler getirildi.
Connectivity
Xamarin.Forms Essentials tarafından da hatırladığımız ve hatta bazı farklı nuget paketlerinde de gördüğümüz, online/offline senaryolarını gerçekleştirdiğimiz Connectivity kontrolü.
Çok basit bir şekilde kullanabiliyoruz.
var current = Connectivity.NetworkAccess;
if (current == NetworkAccess.Internet)
{
// able to connect, do API call
}else{
// unable to connect, alert user
}
Android için izinleri vermeyi unutmamamız gerekiyor 🙂
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
MenuBar
Desktop uygulamalarda navigasyonu ve menuleri yönetmek için kullanabileceğimiz bir yöntem olarak geldi.
MenuBar kullanımını her zaman olduğu gibi ister XAML ister C# tarafında kullanabiliyoruz. Fakat MenuBar kullanımının Shell ve NavigationPage kullanımı ile bir alakası yok. İster Shell ister NavigationPage kullanalım MenuBar tamamen bu yapılardan bağımsız bir şekilde kullanılabiliyor.
<ContentPage.MenuBarItems>
<MenuBarItem Text="File">
<MenuFlyoutItem Text="Quit" Command="{Binding QuitCommand}"/>
</MenuBarItem>
<MenuBarItem Text="Locations">
<MenuFlyoutSubItem Text="Change Location">
<MenuFlyoutItem Text="Boston, MA"/>
<MenuFlyoutItem Text="Redmond, WA"/>
<MenuFlyoutItem Text="St. Louis, MO"/>
</MenuFlyoutSubItem>
<MenuFlyoutItem Text="Add a Location" Command="{Binding AddLocationCommand}"/>
</MenuBarItem>
<MenuBarItem Text="View">
<MenuFlyoutItem Text="Refresh" Command="{Binding RefreshCommand}"/>
<MenuFlyoutItem Text="Toggle Light/Dark Mode" Command="{Binding ToggleModeCommand}"/>
</MenuBarItem>
</ContentPage.MenuBarItems>
- WinUI için Shell mimarisi (#4501)
- iOS için Image caching (#4515)
- Public API’larda Native yerine Platform isimlendirilmesi getirildi. (#4599)
- Shapes üzerinde Line,Rectangle,RoundRectangle,Path,Polyline,Polygon handler getirildi (#4472)
- StrokeShape XAML için string kullanımı getirildi (#3256)
- WebView için cookies özelliği getirildi (#4419)
- WinUI için MenuBar getirildi (#4839)
- Windows için RTL flowdirection getirildi (#4936)
Essentials
MAUI.Essentials aslında Xamarin.Forms Essentials üzerinden base alındı. Genel olarak MAUI.Essentials uygulama geliştirirken ihtiyacımız olan birçok geliştirmeyi bize hazır olarak sağlıyor. Bu da uygulama geliştirme hızımızı yükseltirken maliyetlerimizi düşürüyor. Kullanımda olan yenilikler ise;
Accelerometer | App Actions | App Information |
App Theme | Barometer | Battery |
Clipboard | Color Converters | Compass |
Connectivity | Contacts | Detect Shake |
Display Info | Device Info | |
File Picker | File System Helpers | Flashlight |
Geocoding | Geolocation | Gyroscope |
Haptic Feedback | Launcher | Magnetometer |
MainThread | Maps | Media Picker |
Open Browser | Orientation Sensor | Permissions |
Phone Dialer | Platform Extensions | Preferences |
Screenshot | Secure Storage | Share |
SMS | Text-to-Speech | Unit Converters |
Version Tracking | Vibrate | Web Authenticator |
File Picker
FilePicker ve Maui.Essentials API kullanarak uygulamalarımızda dosya işlemlerini yapabiliyoruz. En basit haliyle;
<Button Text="Select a File" Clicked="OnClicked" />
async void OnClicked(object sender, EventArgs args)
{
var result = await PickAndShow(PickOptions.Default);
}
async Task<FileResult> PickAndShow(PickOptions options)
{
try
{
var result = await FilePicker.PickAsync(options);
if (result != null)
{
Text = $"File Name: {result.FileName}";
if (result.FileName.EndsWith("jpg", StringComparison.OrdinalIgnoreCase) ||
result.FileName.EndsWith("png", StringComparison.OrdinalIgnoreCase))
{
var stream = await result.OpenReadAsync();
Image = ImageSource.FromStream(() => stream);
}
}
return result;
}
catch (Exception ex)
{
// The user canceled or something went wrong
}
return null;
}
Kaynak : https://devblogs.microsoft.com/dotnet/dotnet-maui-preview-14/
Post A Reply