Flutter sdk path android studio

Flutter I — Введение и установка

Flutter — новый инструмент от Google, позволяющий разработчикам писать кроссплатформенные приложения, которые можно запускать на различных системах (например, на Android или iOS) с общей кодовой базой.

Сам инструмент написан на C и C++. Предоставляет движок для 2D рендеринга, React-подобный FRP фреймворк и набор виджетов в стиле Material Design. На данный момент распространяется версия alpha:0.0.20, но несмотря на довольно «сырую» версию, уже можно создавать продвинутый интерфейс, работать с сетью и даже с файловой системой.

Подход Flutter отличается от инструментов, работающих через WebView и выполняющих HTML, CSS и Javascript (например Cordova), — он заключается в использовании Dart как единственного язык программирования. Dart довольно прост в изучении, а если вы ещё и знаете Java, то, считайте, 75% работы сделано, и на Dart можно перейти всего за пару дней.

Приложения компилируются в нативный код при сборке для релиза. Благодаря этому повышается производительность и уменьшается задержка при работе с интерфейсом. При сборке в режиме отладки (и выявлении возможных багов) Flutter также выполняет некоторые задачи, которые могут замедлять приложение. В таких случаях Flutter будет показывать надпись “Slow Mode” в правом верхнем углу экрана.

Почему именно Flutter?

Кроме того, что вы делаете приложение сразу под несколько систем (Android и iOS), код Flutter очень выразителен. То есть потребуется написать меньше кода чем если бы вы писали нативное приложение под одну платформу.

Производительность и отклик пользовательского интерфейса.

Ещё один плюс Flutter — он ориентирован на Material Design и предоставляет множество возможностей для работы с ним.

Google также использует Flutter для разработки пользовательского интерфейса своей новой системы Fuchsia.

Установка

Так как Flutter ещё в процессе разработки и постоянно обновляется, процесс установки со временем может поменяться. Актуальную инструкцию по установке можно найти на сайте Flutter.

Мы будем пользоваться версией 0.0.20+.alpha. (Прим.перев.: на данный момент установка возможна только под Mac и Linux (64-bit))

Шаг 1. Клонирование

Клонируйте ветку alpha из репозитория Flutter при помощи Git (SourceTree, Github Desktop…) и добавьте директорию bin в PATH.

Шаг 2. Проверка зависимостей

Запустите Flutter doctor, чтобы установить все необходимые зависимости.

Шаг 3. Установка платформ

Дальше мы установим платформы для разработки. Мы можем установить обе или ограничиться одной, для которой хотим написать приложение.

В случае с Android необходимо установить Android SDK. Можете просто установить Android Studio, SDK будет в комплекте. В случае, если Android Studio установлена не в директорию по умолчанию, необходимо добавить переменную ANDROID_HOME в PATH, указав новое расположение, куда был установлен SDK.

В случае с iOS необходим xCode версии 7.2 или выше. Для запуска приложений на физическом устройстве необходим дополнительный инструмент. Его можно установить при помощи Homebrew.

Шаг 4. Конфигурация Atom

Рекомендуется использовать текстовый редактор Atom с установленными плагинами Flutter и Dart.

Установка плагина Flutter для Atom:

  • Запустите Atom.
  • Packages > Settings View > Install Packages/Themes.
  • Напишите в поле Install Packages слово ‘flutter’, затем нажмите кнопку Packages.
  • Выберите Flutter и установите.

Откройте Packages > Flutter > Package Settings и выставьте в FLUTTER_ROOT путь, куда был склонирован Flutter SDK.

Затем Packages > Dart > Package Settings и выставьте переменную с расположением dart sdk, обычно это bin/cache/dart-sdk в директории Flutter.

Если у вас Mac, запустите Atom > Install Shell Commands чтобы установить shell-команды.

И напоследок запустите ещё раз Flutter doctor, чтобы удостовериться, что всё в порядке.

Вывод из консоли ниже показывает, что процесс установки успешен, но среда iOS ещё не отвечает всем необходимым требованиям.

Первые шаги (Пишем Hello World!)

Давайте создадим простенькое приложение и посмотрим Flutter в действии. В последующих статьях примеры будут куда сложнее и увлекательнее.

Запустите Packages → Flutter → create new Flutter Project. В директории lib есть файл main.dart, откройте его и сотрите весь код.

Выполнение кода Dart начинается с функции main, которая должна быть включена в файл main.dart.

Теперь импортируем библиотеку material, она предоставляет нам функцию для запуска приложений.

Эта функция называется runApp и принимает виджет (Widget) в качестве параметра. Виджет можно сравнить с представлением (View) в Android или iOS, чтобы иметь общее представление, но, само собой, между ними есть и отличия. То есть в Flutter весь интерфейс строится на использовании виджетов и весь код пишется на Dart. Например в Android надо было бы использовать XML для описания представлений.

Начнём с того, что выведем при помощи виджета Text произвольный текст.

Читайте также:  Хай дей для андроид с бесконечными деньгами

Теперь запускаем приложение через Atom.

Как видно, текст появился за статус-баром. Так произошло потому, что туда установлены координаты Flutter (0,0).

Давайте добавим отступов, чтобы исправить это. Поскольку пользовательский интерфейс Flutter строится на виджетах, отступы тоже будут виджетом. Возможно, для людей с опытом разработки на Android и iOS (где отступы всего лишь свойства представления) это звучит дико. Нам же сейчас нужно добавить виджет Padding и указать виджет Text как дочерний элемент.

В примере выше создан виджет Padding, в котором отступы установлены на 24 при помощи объекта EdgeInsets, а в качестве дочернего элемента указан виджет Text. Запустите приложение и увидите, что текст теперь ниже.

Примечание: если вы знакомы с Java, то имейте в виду, const EdgeInsets.only(top: 24.0) всего лишь вызов конструктора EdgeInsets. Он возвращает экземпляр объекта, который будет константой времени компиляции. В этом разница между Java и Dart, больше информации о конструкторах в Dart можете найти здесь.

Воспользуемся виджетом Center, чтобы разместить текст в центре экрана.

Оба виджета, Padding и Center, предоставляют атрибут, называемый child, используемый для указания дочернего элемента. На самом деле это одна из особенностей, делающих Flutter таким мощным инструментом. Каждый виджет может иметь дочерние элементы, благодаря чему одни виджеты могут быть вложены в другие виджеты. Так, например, Text может быть вложен в Padding, который будет вложен в Center.

Заключение

В первой статье из цикла статей про Flutter мы рассмотрели, как можно при помощи всего нескольких строк кода вывести текст в приложении. В последующих статьях мы сосредоточимся на более сложных интерфейсах, чтобы показать, как их просто реализовать (по сравнению с нативным способом).

Источник

Android Studio and IntelliJ

Installation and setup

Follow the Set up an editor instructions to install the Dart and Flutter plugins.

Updating the plugins

Updates to the plugins are shipped on a regular basis. You should be prompted in the IDE when an update is available.

To check for updates manually:

  1. Open preferences (Android Studio > Check for Updates on macOS, Help > Check for Updates on Linux).
  2. If dart or flutter are listed, update them.

Creating projects

You can create a new project in one of several ways.

Creating a new project

To create a new Flutter project from the Flutter starter app template:

  1. In the IDE, click New Project from the Welcome window or File > New > Project from the main IDE window.
  2. Specify the Flutter SDK path and click Next.
  3. Enter your desired Project name, Description and Project location.
  4. If you might publish this app, set the company domain.
  5. Click Finish.

Setting the company domain

When creating a new app, some Flutter IDE plugins ask for an organization name in reverse domain order, something like com.example . Along with the name of the app, this is used as the package name for Android, and the Bundle ID for iOS when the app is released. If you think you might ever release this app, it is better to specify these now. They cannot be changed once the app is released. Your organization name should be unique.

Creating a new project from existing source code

To create a new Flutter project containing existing Flutter source code files:

In the IDE, click Create New Project from the Welcome window or File > New > Project from the main IDE window.

Important: Do not use the New > Project from existing sources option for Flutter projects.

  • Select Flutter in the menu, and click Next.
  • Under Project location enter, or browse to, the directory holding your existing Flutter source code files.
  • Click Finish.
  • Editing code and viewing issues

    The Flutter plugin performs code analysis that enables the following:

    • Syntax highlighting.
    • Code completions based on rich type analysis.
    • Navigating to type declarations (Navigate > Declaration), and finding type usages (Edit > Find > Find Usages).
    • Viewing all current source code problems (View > Tool Windows > Dart Analysis). Any analysis issues are shown in the Dart Analysis pane:

    Running and debugging

    Note: You can debug your app in a few ways.

    • Using DevTools, a suite of debugging and profiling tools that run in a browser and include the Flutter inspector. DevTools replaces the previous browser-based profiling tool, Observatory.
    • Using Android Studio’s (or IntelliJ’s) built-in debugging features, such as the ability to set breakpoints.
    • Using the Flutter inspector, directly available in Android Studio and IntelliJ.

    The instructions below describe features available in Android Studio and IntelliJ. For information on launching DevTools, see Running DevTools from Android Studio in the DevTools docs.

    Running and debugging are controlled from the main toolbar:

    Selecting a target

    When a Flutter project is open in the IDE, you should see a set of Flutter-specific buttons on the right-hand side of the toolbar.

    Note: If the Run and Debug buttons are disabled, and no targets are listed, Flutter has not been able to discover any connected iOS or Android devices or simulators. You need to connect a device, or start a simulator, to proceed.

    1. Locate the Flutter Target Selector drop-down button. This shows a list of available targets.
    2. Select the target you want your app to be started on. When you connect devices, or start simulators, additional entries appear.
    Читайте также:  Unity3d if unity android

    Run app without breakpoints

    1. Click the Play icon in the toolbar, or invoke Run > Run. The bottom Run pane shows logs output.

    Run app with breakpoints

    1. If desired, set breakpoints in your source code.
    2. Click the Debug icon in the toolbar, or invoke Run > Debug.
      • The bottom Debugger pane shows Stack Frames and Variables.
      • The bottom Console pane shows detailed logs output.
      • Debugging is based on a default launch configuration. To customize this, click the drop-down button to the right of the device selector, and select Edit configuration.

    Fast edit and refresh development cycle

    Flutter offers a best-in-class developer cycle enabling you to see the effect of your changes almost instantly with the Stateful Hot Reload feature. See Hot reload for details.

    Show performance data

    Note: To examine performance issues in Flutter, see the Timeline view.

    To view the performance data, including the widget rebuild information, start the app in Debug mode, and then open the Performance tool window using View > Tool Windows > Flutter Performance.

    To see the stats about which widgets are being rebuilt, and how often, click Show widget rebuild information in the Performance pane. The exact count of the rebuilds for this frame displays in the second column from the right. For a high number of rebuilds, a yellow spinning circle displays. The column to the far right shows how many times a widget was rebuilt since entering the current screen. For widgets that aren’t rebuilt, a solid grey circle displays. Otherwise, a grey spinning circle displays.

    The app shown in this screenshot has been designed to deliver poor performance, and the rebuild profiler gives you a clue about what is happening in the frame that might cause poor performance. The widget rebuild profiler is not a diagnostic tool, by itself, about poor performance.

    The purpose of this feature is to make you aware when widgets are rebuilding—you might not realize that this is happening when just looking at the code. If widgets are rebuilding that you didn’t expect, it’s probably a sign that you should refactor your code by splitting up large build methods into multiple widgets.

    This tool can help you debug at least four common performance issues:

    The whole screen (or large pieces of it) are built by a single StatefulWidget, causing unnecessary UI building. Split up the UI into smaller widgets with smaller build() functions.

    Offscreen widgets are being rebuilt. This can happen, for example, when a ListView is nested in a tall Column that extends offscreen. Or when the RepaintBoundary is not set for a list that extends offscreen, causing the whole list to be redrawn.

    The build() function for an AnimatedBuilder draws a subtree that does not need to be animated, causing unnecessary rebuilds of static objects.

    An Opacity widget is placed unnecessarily high in the widget tree. Or, an Opacity animation is created by directly manipulating the opacity property of the Opacity widget, causing the widget itself and its subtree to rebuild.

    You can click on a line in the table to navigate to the line in the source where the widget is created. As the code runs, the spinning icons also display in the code pane to help you visualize which rebuilds are happening.

    Note that numerous rebuilds doesn’t necessarily indicate a problem. Typically you should only worry about excessive rebuilds if you have already run the app in profile mode and verified that the performance is not what you want.

    And remember, the widget rebuild information is only available in a debug build. Test the app’s performance on a real device in a profile build, but debug performance issues in a debug build.

    Editing tips for Flutter code

    If you have additional tips we should share, let us know!

    Assists & quick fixes

    Assists are code changes related to a certain code identifier. A number of these are available when the cursor is placed on a Flutter widget identifier, as indicated by the yellow lightbulb icon. The assist can be invoked by clicking the lightbulb, or by using the keyboard shortcut ( Alt + Enter on Linux and Windows, Option + Return on macOS), as illustrated here:

    Quick Fixes are similar, only they are shown with a piece of code has an error and they can assist in correcting it. They are indicated with a red lightbulb.

    Wrap with new widget assist

    This can be used when you have a widget that you want to wrap in a surrounding widget, for example if you want to wrap a widget in a Row or Column .

    Wrap widget list with new widget assist

    Similar to the assist above, but for wrapping an existing list of widgets rather than an individual widget.

    Convert child to children assist

    Changes a child argument to a children argument, and wraps the argument value in a list.

    Live templates

    Live templates can be used to speed up entering typical code structures. They are invoked by typing their prefix, and then selecting it in the code completion window:

    Читайте также:  Хороший андроид до 12000

    The Flutter plugin includes the following templates:

    • Prefix stless : Create a new subclass of StatelessWidget .
    • Prefix stful : Create a new subclass of StatefulWidget and its associated State subclass.
    • Prefix stanim : Create a new subclass of StatefulWidget and its associated State subclass, including a field initialized with an AnimationController .

    You can also define custom templates in Settings > Editor > Live Templates.

    Keyboard shortcuts

    Hot reload

    On Linux (keymap Default for XWin) and Windows the keyboard shortcuts are Control + Alt + ; and Control + Backslash .

    On macOS (keymap Mac OS X 10.5+ copy) the keyboard shortcuts are Command + Option and Command + Backslash .

    Keyboard mappings can be changed in the IDE Preferences/Settings: Select Keymap, then enter flutter into the search box in the upper right corner. Right click the binding you want to change and Add Keyboard Shortcut.

    Hot reload vs. hot restart

    Hot reload works by injecting updated source code files into the running Dart VM (Virtual Machine). This includes not only adding new classes, but also adding methods and fields to existing classes, and changing existing functions. A few types of code changes cannot be hot reloaded though:

    • Global variable initializers
    • Static field initializers
    • The main() method of the app

    For these changes you can fully restart your application, without having to end your debugging session. To perform a hot restart, don’t click the Stop button, simply re-click the Run button (if in a run session) or Debug button (if in a debug session), or shift-click the ‘hot reload’ button.

    Editing Android code in Android Studio with full IDE support

    Opening the root directory of a Flutter project doesn’t expose all the Android files to the IDE. Flutter apps contain a subdirectory named android . If you open this subdirectory as its own separate project in Android Studio, the IDE will be able to fully support editing and refactoring all Android files (like Gradle scripts).

    If you already have the entire project opened as a Flutter app in Android Studio, there are two equivalent ways to open the Android files on their own for editing in the IDE. Before trying this, make sure that you’re on the latest version of Android Studio and the Flutter plugins.

    • In the “project view”, you should see a subdirectory immediately under the root of your flutter app named android . Right click on it, then select Flutter > Open Android module in Android Studio.
    • OR, you can open any of the files under the android subdirectory for editing. You should then see a “Flutter commands” banner at the top of the editor with a link labeled Open for Editing in Android Studio. Click that link.

    For both options, Android Studio gives you the option to use separate windows or to replace the existing window with the new project when opening a second project. Either option is fine.

    If you don’t already have the Flutter project opened in Android studio, you can open the Android files as their own project from the start:

    1. Click Open an existing Android Studio Project on the Welcome splash screen, or File > Open if Android Studio is already open.
    2. Open the android subdirectory immediately under the flutter app root. For example if the project is called flutter_app , open flutter_app/android .

    If you haven’t run your Flutter app yet, you might see Android Studio report a build error when you open the android project. Run flutter pub get in the app’s root directory and rebuild the project by selecting Build > Make to fix it.

    Editing Android code in IntelliJ IDEA

    To enable editing of Android code in IntelliJ IDEA, you need to configure the location of the Android SDK:

    1. In Preferences > Plugins, enable Android Support if you haven’t already.
    2. Right-click the android folder in the Project view, and select Open Module Settings.
    3. In the Sources tab, locate the Language level field, and select level 8 or later.
    4. In the Dependencies tab, locate the Module SDK field, and select an Android SDK. If no SDK is listed, click New and specify the location of the Android SDK. Make sure to select an Android SDK matching the one used by Flutter (as reported by flutter doctor ).
    5. Click OK.

    Tips and tricks

    Troubleshooting

    Known issues and feedback

    Important known issues that might impact your experience are documented in the Flutter plugin README file.

    All known bugs are tracked in the issue trackers:

    We welcome feedback, both on bugs/issues and feature requests. Prior to filing new issues:

    • Do a quick search in the issue trackers to see if the issue is already tracked.
    • Make sure you have updated to the most recent version of the plugin.

    When filing new issues, include the output of flutter doctor .

    Except as otherwise noted, this work is licensed under a Creative Commons Attribution 4.0 International License, and code samples are licensed under the BSD License.

    Источник

    Оцените статью