10+ лучших советов, приемов и приемов Flutter
Flutter — отличный фреймворк для создания приложений для iOS и Android. Разработчики используют единую кодовую базу системной утилиты для кроссплатформенной разработки приложений. Изучите основные шаги и приемы, чтобы стать профессионалом в разработке приложений на флаттерах.
Выполните эти 10+ начальных шагов, чтобы научиться Flutter
Чтобы начать разработку приложений Flutter, необходимо ознакомиться с языком Dart, синтаксисом и правильным рабочим процессом.
Следуйте основным вещам, если кто-то хочет сделать шаг вперед в разработке приложений Flutter.
- Изучите основы программирования на языке Dart.
- Ознакомьтесь с VSCode IDE, Android Studio и IntelliJ.
- Затем изучите виджеты (унаследованные, без сохранения состояния, с сохранением состояния), активы (шрифты, изображения, аудио, видео).
- Запомните плагины и пакеты — package_info, dio, http, font_awesome_flutter, cached_network_image, url_launcher, json_serialization, camera и т. д.
- Изучите основы анимации: непрозрачность, герой, преобразование, AnimatedController, AnmatedBuilder, FadeInImage, CurvedAnimation.
- Изучите основы навигации: переходы
- Практика на базе данных: общие настройки SQFlite
- Изучите основы Firebase: база данных Firebase, обмен сообщениями Firebase, аутентификация Firebase, хранилище Firebase.
- Изучите основы управления состоянием: GETX, Redux, BLoC, Providers+ScopedModel, setState, MobX, провайдер
- Изучите основы контроля качества: A/B-тестирование, аналитика поведения пользователей, бета-тестирование GooglePlay, AppCenter. А также QA Firebase-Analytics, распространение приложений, Crashlytics.
- Изучите нативную интеграцию для iOS: Swift/Obj-C, AppStore, AppleCertf, x-Code и для Android: Google PlayStore, Java/Kotlin, Android Studio, App Signing.
10+ удивительных советов и приемов, которые помогут эффективно работать с Flutter
Мы должны проводить исследования в Интернете и на других платформах, а также подбирать советы и рекомендации, чтобы улучшить ваши знания и навыки в области разработки флаттера. Прочитайте блог до конца и изучите продвинутые вещи и ярлыки.
1. Загрузка файла PDF
Вы можете загружать файлы трех типов: активы, URL-адрес и файл.
Во-первых, вам нужно использовать зависимость advance_pdf_viewer от pubspec.yaml.
Advance_pdf_viewer: any
Вызвать loadPdf() внутри initState()
import 'package:flutter/material.dart';
import 'package:advance_pdf_viewer/advance_pdf_viewer.dart';
void main() => runApp(MaterialApp(
home: MyApp(),
));
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
bool _isLoading = true;
late PDFDocument document;
@override
void initState() {
super.initState();
loadDocument();
}
loadDocument() async {
document = await PDFDocument.fromAsset('assets/sample.pdf');
setState(() => _isLoading = false);
}
changePDF(value) async {
setState(() => _isLoading = true);
if (value == 1) {
document = await PDFDocument.fromAsset('assets/sample2.pdf');
} else if (value == 2) {
document = await PDFDocument.fromURL(
"https://unec.edu.az/application/uploads/2014/12/pdf-sample.pdf",
);
} else {
document = await PDFDocument.fromAsset('assets/sample.pdf');
}
setState(() => _isLoading = false);
Navigator.pop(context);
}
@override
Widget build(BuildContext context) {
return Scaffold(
drawer: Drawer(
child: SizedBox(
height: 36,
child: ListTile(
title: const Text('Load from URL'),
onTap: () {
changePDF(2);
},
),
),
),
appBar: AppBar(
title: const Text('FlutterPluginPDFViewer'),
),
body: Center(
child: _isLoading
? const Center(child: CircularProgressIndicator())
: PDFViewer(
document: document,
zoomSteps: 1,
),
),
);
}
}
Вы имеете опыт работы в сфере ИТ и технологий; мы ищем ресурсы, советы и короткие приемы, чтобы выполнить нашу работу раньше срока. Итак, если вы хотите генерировать файлы быстрее, установите расширения кода VS для разработки флаттера.
3. Простая настройка темы
Хотите сделать внешний вид виджета более привлекательным и притягательным? Вот код для изменения конкретной темы виджета в проекте разработки приложения флаттер
Theme{
data:ThemeData(...)
child:TextFormField(
Decoration:const InputDecoration(
icon:Icon(Icons.person),
hintText:’type message here’,
labelText:’message*’,
),
validator:(value){
Return value!.contains(‘@’)?
‘Do not use the @ char’:null;
}
debugPrint()
4. Получите доступ к огромному объему данных без каких-либо проблем
Обычно мы используем print() для отображения данных. Но иногда системная консоль не может представить полное представление. У нас есть альтернатива доступу или печати огромных строк данных. Используем debugPrint()
и получаем подробное представление.
5. Делитесь файлами легко
Мы все любим делиться забавным контентом с нашими друзьями и семьей. Теперь вы можете включить эту функцию в свое приложение на флаттере и улучшить взаимодействие с пользователем. Вам просто нужно выполнить несколько простых шагов во время разработки флаттер-приложения.
Доступ pubspec.yaml
Добавьте зависимость пакета: share_plus, как показано ниже.
Dependencies:
share_plus:^4.0.10
Теперь импортируйте библиотеку пакетов следующим образом:
Импорт ‘package:share_plus/ share_plus.dart’
;
Теперь далее вызывается статический метод общего доступа в любом месте кода:
Share.share(
‘Check out my website your website url’
);
Если вы добавляете эту функцию для электронной почты, следуйте приведенным ниже строкам кода:
Share.share(
‘Check out my website your website url’
Subject: ‘type your suject ’,
);
Эта статическая функция метода ShreFiles доступна во всех доступных кодах дротика. У вас есть разрешение на добавление текста или темы.
Сделайте это следующим образом:
Share.shareFiles(
[‘${directory.path}/image.jpg’],
Text: ‘Your text’,
);
Share.shareFiles(
[‘${directory.path}/image.jpg’,
‘${directory.path}/image.jpg’],
);
6. Измените значки программы запуска Futter
Flutter предлагает все базовые и расширенные возможности для быстрого выполнения задач. Но у нас нет никакой идеи изменить или изменить значки флаттера. Однако теперь вы можете попробовать этот трюк и сломать эту сигму в разработке флаттера.
Прежде чем продолжить, не забудьте использовать изображение с разрешением 900x900.
Нам нужно создать изображения background.png и foreground.png. Это превратит его в адаптивный значок.
https://adapticon.mariusclaret.com/
Вы можете посетить URL-адрес, чтобы проверить адаптивный значок.
- Теперь создайте одну иконку png.
- Перейдите в активы/лаунчер/ и поместите эти 3 изображения сюда.
- Теперь получите доступ к pubspec.ya
dev_dependencies:
flutter Launcher_icons: "^0.7.0"
flutter icons:
ios: true
android: true
image_path_ios: "assets/launcher/icon.png"
image_path_android: "assets/launcher/icon.png"
adaptive_icon_background: "assets/launcher/background.png"
adaptive_icon_foreground: "assets/launcher/foreground.png";
- Последнее, что нужно сделать, это выполнить команду для получения вывода.
получить пакеты flatter
flutter packages pub run flutter _launcher_icons:main
7. Эффективная отладка с наложением производительности
Вы можете проверить, подходит ли кадр для простого рендеринга или нет. Вам просто нужно упомянуть showPerformanceOverlay, что даст вам вывод относительно кадра.
Проверьте растровый поток или время графического процессора вверху и время пользовательского интерфейса внизу. Если график графического процессора явно окрашен в красный цвет, это означает, что сцена слишком длинная для рендеринга или для размещения в кадре. Точно так же код дротика не подходит, если нить/график пользовательского интерфейса также показывает статус полосы красным цветом.
Мы используем эти советы следующим образом:
Return MaterialApp(
showPerformanceOverlay: true;
Title: CIT’,
)
8. Доступ к фонарику в разработке приложений Flutter
Теперь вы можете получить доступ к своим флаттер-приложениям с помощью фонарика, выполнив несколько шагов зависимости и импорта пакета.
dependencies:
torch_light: ^0.4.0
Ниже приведен код разработки флаттера, который вы можете встроить в свою прикладную программу:
Future<void> _turnOnFlash(BuildContext context) async {
try{
await Torch_Light.enableTorch(_);
} on Exception catch (_) {
_showErrorMes(‘Could not turn on flashlight’, context);
}
}
Future<void> _turnOffFlash(BuildContext context) async {
try{
await Torch_Light.disableTorch(_);
} on Exception catch (_) {
_showErrorMes(‘Could not turn on flashlight’, context);
}
}
void_showErrorMes(String mes, BuidContext context) {
ScaffoldMessenger.of(context)
.showSnackBar(Snackbar(Content: Text(mes)));
}
}
9. Легко обнаруживайте жесты
Flutter позволяет обнаруживать жесты для каждого движения руки:
Используйте касание для одиночного касания, далее используйте двойное касание, перетаскивание, масштабирование, нажатие, длительное нажатие и многое другое.
Container(
color:_color,
height: 200.0,
width: 200.0,
child: GestureDetector(
onTap: () =>
setState(() {_color = Colors.yellow;}),
),
)
10. Приостановить выполнение программы
Если вы хотите задержать процесс в программе на некоторое время, вы можете использовать Future.delayed() и ввести продолжительность, чтобы приостановить выполнение программы. Это всего лишь двухстрочный код для разработки флаттер-приложений.
await Future.delayed(
Const Duration(seconds: type no.));
11.Добавьте переход к любому тексту
Хотите улучшить текст в приложении? Следуйте приведенному ниже коду:
AnimatedDefaultTextStyle(
Duration: Duration(milliseconds:300),
Child: Text(“Flutter”),
style:newStyle,
)
12. Уменьшите размер приложения
Изображения ответственны за замедление работы приложения. Это увеличивает размер приложения, поэтому лучший способ — получить доступ к любому хостинговому объекту или службам, таким как firebase или любой другой.
В качестве альтернативы вы должны сжать разрешение изображения и не хранить его в папке с ресурсами. Это сгладит пользовательский интерфейс.
Дополнительные советы по разработке приложений Flutter:
- Вы можете сократить цикл CPU для важных целей с помощью виджетов без сохранения состояния.
- Предотвратите реконструкцию виджетов, добавив одно ключевое слово «const».
- Медленно загружайте свои списки и сетки, добавляя ListView.builder.
Дайте нам знать, если вы пробовали эти вещи раньше или нашли что-то интересное и новое!