Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Блог

Гайд по отладке Android-приложения: ищем баги и читаем логи

Иногда в приложении встречаются ошибки, которые нельзя увидеть даже после запуска. Например, код компилируется, проект запускается, но результат далёк от желаемого: приложение падает или вдруг появляется какая-то ошибка (баг). В таких случаях приходится «запасаться логами», «брать в руки отладчик» и искать ошибки.

Часто процесс поиска и исправления бага состоит из трёх шагов:

  1. Воспроизведение ошибки — вы понимаете, какие действия нужно сделать в приложении, чтобы повторить ошибку.
  2. Поиск места ошибки — определяете класс и метод, в котором ошибка происходит.
  3. Исправление ошибки.

Если приложение не падает и чтение логов ничего не даёт, то найти точное место ошибки в коде помогает дебаггер (отладчик) — инструмент среды разработки.

    Чтобы посмотреть на логи и воспользоваться дебаггером, давайте напишем простое тестовое (и заведомо неправильное) приложение, которое даст нам все возможности для поиска ошибок.

    Это будет приложение, которое сравнивает два числа. Если числа равны, то будет выводиться результат «Равно», и наоборот. Начнём с простых шагов:

  1. Открываем Android Studio. 
  2. Создаём проект с шаблоном Empty Activity. 
  3. Выбираем язык Java, так как его, как правило, знают больше людей, чем Kotlin. 

Нам автоматически откроются две вкладки: activity_main.xml и MainActivity.java. Сначала нарисуем макет: просто замените всё, что есть в activity_main.xml, на код ниже:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".MainActivity">
 
  <EditText
     android:id="@+id/first_number_et"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:ems="10"
     android:gravity="center"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintRight_toRightOf="parent"
     app:layout_constraintTop_toTopOf="parent" />
 
  <EditText
     android:id="@+id/second_number_et"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:ems="10"
     android:gravity="center"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintRight_toRightOf="parent"
     app:layout_constraintTop_toBottomOf="@+id/first_number_et" />
 
  <Button
     android:id="@+id/button"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="Равно?"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintRight_toRightOf="parent"
     app:layout_constraintTop_toBottomOf="@+id/second_number_et" />
 
  <TextView
     android:id="@+id/answer_tv"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text=""
     android:textSize="32sp"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintRight_toRightOf="parent"
     app:layout_constraintTop_toBottomOf="@+id/button" />
</androidx.constraintlayout.widget.ConstraintLayout>

Можете запустить проект и посмотреть, что получилось:

Теперь оживим наше приложение. Скопируйте в MainActivity этот код:

public class MainActivity extends AppCompatActivity {
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
 
     final Button button = (Button) findViewById(R.id.button);
     final EditText first = (EditText) findViewById(R.id.first_number_et);
     final EditText second = (EditText) findViewById(R.id.second_number_et);
     final TextView answer = (TextView) findViewById(R.id.answer_tv);
 
     button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           Integer firstInt = Integer.parseInt(first.getText().toString());
           Integer secondInt = Integer.parseInt(second.getText().toString());
           if (firstInt == secondInt) {
              answer.setText("Равно");
           } else {
              answer.setText("Равно");
           }
        }
     });
  }
}

В этом коде всё просто: 

  1. Находим поля ввода, поле с текстом и кнопку.
  2. Вешаем на кнопку слушатель нажатий.
  3. По нажатию на кнопку получаем числа из полей ввода и сравниваем их.
  4. В зависимости от результата выводим «Равно» или «Не равно».

Запустим приложение и введём буквы вместо чисел:

Нажмём на кнопку, и приложение упадёт! Время читать логи. Открываем внизу слева вкладку «6: Logcat» и видим:

Читать логи просто: нужно найти красный текст и прочитать сообщение системы. В нашем случае это java.lang.NumberFormatException: For input string: "f". Указан тип ошибки NumberFormatException, который говорит, что возникла какая-то проблема с форматированием числа. И дополнение: For input string: "f". Введено “f”. Уже можно догадаться, что программа ждёт число, а мы передаём ей символ. Далее в красном тексте видно и ссылку на проблемную строку: at com.example.appdebugging.MainActivity$1.onClick(MainActivity.java:26). Проблема в методе onClick класса MainActivity, строка 24. Можно просто кликнуть по ссылке и перейти на указанную строку:

int firstInt = Integer.parseInt(first.getText().toString());

Конечно, метод parseInt может принимать только числовые значения, но никак не буквенные! Даже в его описании это сказано — и мы можем увидеть, какой тип ошибки этот метод выбрасывает (NumberFormatException).

Здесь мы привели один из примеров. Типов ошибок может быть огромное количество, все мы рассматривать не будем. Но все ошибки в Logcat’е указываются по похожему принципу: 

  • красный текст;
  • тип ошибки — в нашем случае это NumberFormatException;
  • пояснение — у нас это For input string: "f";
  • ссылка на строку, на которой произошла ошибка — здесь видим MainActivity.java:26. 

Исправим эту ошибку и обезопасим себя от некорректного ввода. Добавим в наши поля ввода android:inputType="number", а остальной код оставим без изменений:

...
<EditText
  android:id="@+id/first_number_et"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:ems="10"
  android:gravity="center"
  android:inputType="number"
  app:layout_constraintLeft_toLeftOf="parent"
  app:layout_constraintRight_toRightOf="parent"
  app:layout_constraintTop_toTopOf="parent" />
 
<EditText
  android:id="@+id/second_number_et"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:ems="10"
  android:gravity="center"
  android:inputType="number"
  app:layout_constraintLeft_toLeftOf="parent"
  app:layout_constraintRight_toRightOf="parent"
  app:layout_constraintTop_toBottomOf="@+id/first_number_et" />
...

    Теперь можем вводить только числа. Проверим, как работает равенство: введём одинаковые числа в оба поля. Всё в порядке:

На равенство проверили. Введём разные числа: 

Тоже равно. То есть приложение работает, ничего не падает, но результат не совсем тот, который требуется. Наверняка вы и без дебаггинга догадались, в чём ошибка, потому что приложение очень простое, всего несколько строк кода. Но такие же проблемы возникают в приложениях и на миллион строк. Поэтому пройдём по уже известным нам этапам дебаггинга:

  1. Воспроизведём ошибку: да, ошибка воспроизводится стабильно с любыми двумя разными числами.
  2. Подумаем, где может быть ошибка: наверняка там, где сравниваются числа. Туда и будем смотреть.
  3. Исправим ошибку: сначала найдём её с помощью дебаггера, а когда поймём, в чём проблема, — будем исправлять.

И здесь на помощь приходит отладчик. Для начала поставим точки останова сразу в трёх местах:

    Чтобы поставить или снять точку останова, достаточно кликнуть левой кнопкой мыши справа от номера строки или поставить курсор на нужную строку, а затем нажать CTRL+F8. Почему мы хотим остановить программу именно там? Чтобы посмотреть, правильные ли числа сравниваются, а затем определить, в какую ветку в нашем ветвлении заходит программа дальше. Запускаем программу с помощью сочетания клавиш SHIFT+F9 или нажимаем на кнопку с жучком:

  

    Появится дополнительное окно, в котором нужно выбрать ваш девайс и приложение:

Вы в режиме дебага. Обратите внимание на две вещи:

  1. Точки останова теперь помечены галочками. Это значит, что вы находитесь на экране, где стоят эти точки, и что дебаггер готов к работе.
  2. Открылось окно дебага внизу: вкладка «5: Debug». В нём будет отображаться необходимая вам информация.

    Введём неравные числа и нажмём кнопку «РАВНО?». Программа остановилась на первой точке:

Давайте разбираться:

  1. Сразу подсвечивается синим строка, где программа остановлена: в окне кода на 28-й строке и в левом окне отладчика (там даже можно увидеть, какой метод вызван, — onClick).
  2. В правом, основном окне отладчика, всё гораздо интереснее. Здесь можно увидеть инстансы наших вью (answer, first, second), в конце которых серым текстом даже отображаются их id. Но интереснее всего посмотреть на firstInt и secondInt. Там записаны значения, которые мы сейчас будем сравнивать.

Как видим, значения именно такие, какие мы и ввели. Значит, проблема не в получении чисел из полей. Давайте двигаться дальше — нам нужно посмотреть, в правильную ли ветку мы заходим. Для этого можно нажать F8 (перейти на следующую строку выполнения кода). А если следующая точка останова далеко или в другом классе, можно нажать F9 — программа просто возобновит работу и остановится на следующей точке. В интерфейсе эти кнопки находятся здесь:

Остановить дебаггер, если он больше не нужен, можно через CTRL+F2 или кнопку «Стоп»:

    В нашем случае неважно, какую кнопку нажимать (F9 или F8). Мы сразу переходим к следующей точке останова программы:

Ветка правильная, то есть логика программы верна, числа firstInt и secondInt не изменились. Зато мы сразу видим, что подпись некорректная! Вот в чём была ошибка. Исправим подпись и проверим программу ещё раз.

    Мы уже починили два бага: падение приложения с помощью логов и некорректную логику (с помощью отладчика). Хеппи пас (happy path) пройден. То есть основная функциональность при корректных данных работает. Но нам надо проверить не только хеппи пас — пользователь может ввести что угодно. И программа может нормально работать в большинстве случаев, но вести себя странно в специфических состояниях. Давайте введём числа побольше и посмотрим, что будет:

Не сработало — программа хочет сказать, что 1000 не равна 1000, но это абсурд. Запускаем приложение в режиме отладки. Точка останова уже есть. Смотрим в отладчик:

Числа одинаковые, что могло пойти не так? Обращаем внимание на тип переменной — Integer. Так вот в чём проблема! Это не примитивный тип данных, а ссылочный. Ссылочные типы нельзя сравнивать через ==, потому что будут сравниваться ссылки объектов, а не они сами. Но для Integer в Java есть нюанс: Integer может кешироваться до 127, и если мы вводим по единице в оба поля числа до 127, то фактически сравниваем просто int. А если вводим больше, то получаем два разных объекта. Адреса у объектов не совпадают, а именно так Java сравнивает их.

Есть два решения проблемы:

  1. Изменить тип Integer на примитив int.
  2. Сравнивать как объекты.

    Не рекомендуется менять тип этих полей в реальном приложении: числа могут приходить извне, и тип лучше оставлять прежним. Изменим то, как мы сравниваем числа:

if (firstInt.equals(secondInt)) {
  answer.setText("Равно");
} else {
  answer.setText("Не равно");
}

Проверяем:

Всё работает. Наконец-то! Хотя… Давайте посмотрим, что будет, если пользователь ничего не введёт, но нажмёт на кнопку? Приложение опять упало… Смотрим в логи:

Опять NumberFormatException, при этом строка пустая. Давайте поставим точку останова на 26-й строке и заглянем с помощью отладчика глубже.

Нажмём F8 — и перейдём в глубины операционной системы:

    Интересно! Давайте обернём код в try/catch и посмотрим ошибке в лицо. Если что, поправим приложение. Выделяем код внутри метода onClick() и нажимаем Ctrl+Alt+T:

Выбираем try / catch, среда разработки сама допишет код. Поставим точку останова. Получим:

Запускаем приложение и ловим ошибку:

Действительно, как и в логах, — NumberFormatException. Метод parseInt выбрасывает исключение, если в него передать пустую строку. Как обрабатывать такую проблему — решать исключительно вам. Два самых простых способа:

  1. Проверять получаемые строки first.getText().toString() и second.getText().toString() на пустые значения. И если хоть одно значение пустое — говорить об этом пользователю и не вызывать метод parseInt.
  2. Или использовать уже готовую конструкцию try / catch:

Теперь-то точно всё в порядке! Хотя профессиональным тестировщикам это приложение никто не отдавал: поищете ещё ошибки? :)

 


31 авг 21, 17:37
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Руководитель проектов в строительстве — новый факультет

Есть много вариантов строительных проектов: от простого дома до большого моста, от плотины до сейсмической модернизации аэропорта. Городской парк, в котором мы так любим гулять, бассейн в соседнем дворе — всё те же, некогда успешно завершённые, строительные проекты. Управление такими проектами, как и любыми другими, состоит из нескольких этапов, для успешной реализации каждого из которых необходим грамотный руководитель.

Руководитель строительных проектов — новый факультет GeekUniversity. Подробней о нём нам рассказал декан факультета и эксперт в проекте строительства в международном аэропорту «Шереметьево» Игорь Зуриев.

Что особенного в обязанностях руководителя проектов в строительстве

Руководителя проекта в строительстве чаще всего нанимают под конкретную инициативу, строительный объект. При этом, в зависимости от специфики деятельности фирмы, такой специалист может как вести полный комплекс работ, так и контролировать отдельные этапы строительства, будь то внутренняя отделка, установка отопительных систем или монтаж оборудования. Так или иначе, существует определённый пул обязанностей, которые предстоит выполнять каждому из руководителей.

«Во-первых, менеджер проекта должен знать техническую составляющую — понимать технологию производства строительно-монтажных работ.

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

В-третьих, приходится вносить каких-либо изменения в содержание проекта, особенно в его техническую часть, что далеко не всегда просто. Построенный наполовину объект очень сложно изменить, а «хотелки» у заказчиков бывают разные. Поэтому важно уметь разъяснить заказчику, где можно, а где нельзя вносить изменения.

В-четвёртых, на местном рынке у строительных компаний плохо сформировано понимание ведения проектной деятельности и зачастую строительный проект превращается в операционную деятельность компании, после чего становится долгостроем», — рассказывает Игорь Зуриев.

Повлияла ли пандемия на бизнес?

Руководители строительных проектов востребованы на рынке. Сегодня на сайтах по поиску работы доступно более двух тысяч вакансий, а средняя зарплата составляет 110 тысяч рублей.

Вот что об этом думает декан факультета Игорь Зуриев: «Спрос на квалифицированных управленцев в строительстве всегда велик. Одно дело — построить объект, другое — собрать команду, спланировать пул ресурсов и рассчитать адекватные сроки, необходимые для строительства этого объекта.

Элементарный пример — строительство многоквартирных жилых домов, оно не прекращается. Людей много и всем нужно где-то жить. Поэтому и профессия руководителя проектов в строительстве остаётся актуальной».

Что ждут работодатели от кандидата на позицию руководителя строительного проекта?

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

  1. Аналитический склад ума.
  2. Умение управлять командой и работать со специалистами из смежных областей.
  3. Знание стандартов проектного менеджмента, в том числе в строительстве.
  4. Владение мировыми стандартами и методологиями управления проектами.
  5. Грамотное составление проектной документации.
  6. Владение инструментами управления проектами.

Всему этому научат на факультете «Руководитель проектов в строительстве» в GeekUniversity. За 12 месяцев вы освоите все тонкости работы проджект-менеджера: от основ деловой переписки и составления сметы до поиска подрядчиков и презентации проекта. Иными словами, будете на 100% готовы к выходу на рынок.

Что нужно уметь перед началом курса, как строится обучение и чего ждать по итогам?

Чтобы успешно влиться в обучение, необходимо иметь минимальный опыт в строительстве, понимать, что это такое. Возможно, абитуриент уже работал в этой сфере и видел, как строятся процессы изнутри. Программа факультета состоит из четырёх блоков, или четвертей:

  1. Основы менеджмента проектов в строительстве.
  2. Финансовые и юридические аспекты.
  3. Будни руководителя проектов.
  4. Защита проектов и подготовка к собеседованию.

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

«Во время обучения разбираются особенности процессов управления проектом в разных отраслях без сильного углубления в отдельные виды строительства. То есть не разбирается отдельно строительство энергетических объектов или многоквартирных домов, но даётся понимание, как управлять и выстраивать процессы абсолютно в любом виде строительства, применяя методологии.

По итогам всё зависит от бэкграунда студента. Если это человек с небольшим опытом в строительстве, он вполне может подняться на одну ступень выше в карьере. Если же это человек с хорошим бэкграундом и опытом участия в крупных проектах, он вполне сможет уже возглавить отдельный проект и полностью его реализовать», — поделился Игорь Зуриев.

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

 


12 фев 21, 13:07
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Освойте топовые дизайн-тренды (с уроками Photoshop)

Это перевод статьи «Master Hot Design Trends (with Photoshop Tutorials)». Автор оригинала — Миклош Филипс (Miklos Philips) — UX-дизайнер с опытом более 16 лет.

Повседневная жизнь полна ярких визуальных образов. Из экспериментов в области графического дизайна рождаются горячие тренды и — внезапно — проникают всюду. Мы видим броские дизайнерские решения на автобусах, билбордах, в телерекламе, журналах и, конечно, в цифровом контенте. Приемов много: двойная экспозиция, глитч (glitch  — цифровые помехи, сбой, ошибка), цветовые каналы, фотомаски, смазанность, ультраяркие цвета или «ошибки печати» (misprint).

Трендовый эффект «глитч» на рекламе в метро Нью-Йорка

Как и в мире моды, в дизайне тренды — это переосмысленный опыт прошлых десятилетий: русский конструктивизм, Баухаус, шелкография, стиль 1970-х. Почти целый век художники используют простую геометрию, и она работает так же хорошо, как и 100 лет назад.

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

Стоит ли следовать трендам

Некоторые дизайнеры и креативные директора избегают трендовых решений, потому что не хотят выглядеть подражателями. Но следование тенденциям может привнести в ваши работы современные штрихи. У решения быть не таким, как все, тоже есть преимущества. Поэтому лучшие дизайнеры заимствуют идеи из трендов прошлого и настоящего, комбинируют и подчас получают нечто принципиально новое и поразительное.

Небольшое предостережение: прежде чем использовать тренд, убедитесь, что он не противоречит вашему брендингу. Банки, страховые и инвестиционные компании людям хочется ассоциировать с надежностью и доверием. В этом контексте едва ли уместны эффекты, связанные с подрывом устоев и контркультурой — глитч, например.

Прием двойной экспозиции украсил вступительную заставку сериала «True Detective» от HBO.

Ниже мы рассмотрим несколько модных дизайнерских приемов и поделимся уроками по созданию эффектов в Photoshop.

Горячий тренд №1: двойная экспозиция

Этот прием позволяет создавать эффектные визуальные сочетания. Название пришло из пленочной фотографии, где можно сделать два или три снимка без прокрутки пленки — и кадры накладываются друг на друга. Эффект часто используют на киноафишах и в рекламных роликах на ТВ. Выше вы видели кадр из заставки сериала “True Detective”: сочетание двойной экспозиции с анимацией усиливает впечатление.

Главное условие успеха здесь — удачный подбор изображений. Когда вы берете за основу картинку с высокой контрастностью, следующий слой лучше разместить поверх самых темных ее участков. Часто портрет смешивают с более детализированной картинкой, вроде городского пейзажа.

А вот несколько хороших уроков, как сделать подобное в Photoshop:

Двойная экспозиция. Урок #1

Двойная экспозиция. Урок #2

Двойная экспозиция. Урок #3

Эффекты «глитч», «ошибка печати» и «визуальные помехи»

Это приемы одного ряда. С ними изображение притягивает взгляд, потому что выбивается из потока «идеальных картинок». В основе — цифровые искажения, или глитч. Когда все вокруг отфотошоплено до безупречности (кто-то назовет это фальшивым или «эстетически загрязненным»), хочется взглянуть на что-то более реалистичное, естественное и неприлизанное.

Эффекты, основанные на ошибках или сбоях, обычно нравятся молодому поколению. Стремление разоблачить притворство — контркультурная составляющая, которая выделяет произведение из общего ряда. Но и эти эффекты уместны не в любой ситуации.

То, что  дизайнеры называют глитчем, еще может встречаться как VHS, RGB-сдвиг, искажение при сканировании, визуальные помехи и «ошибка печати». Дизайнеры-новаторы иногда совмещают несколько таких эффектов, чтобы получить оригинальный результат.

На постере к сериалу «Мистер Робот» несколько разновидностей глитч-эффекта подчеркивают контркультурный антураж.

Цветовой сдвиг + «ошибка печати» + цифровые помехи.

Чересполосное сканирование со смещением изображения создает необычный, притягательный для глаза эффект.

Добиться подобных результатов можно разными способами — осмотритесь на YouTube и выберите, что вам понравится. Есть даже готовые Photoshop Actions, которые можно купить, чтоб накладывать глитч в один клик.  

Парочка крутых Photoshop-уроков по этому тренду:

Глитч. Урок #1

Глитч. Урок  #2

Вы даже можете создавать glitch-эффект средствами CSS. Вот примеры слайдшоу и лендинга.

Двухтоновые эффекты

Прием «дуплекс» (duotone) давно в моде и не устаревает. Сотни лет назад с помощью сангины — красного мелового карандаша — однотонные рисунки создавал Леонардо да Винчи. Манера разбивать изображение на простые тона укоренилась, и современная двухтональная техника развивает идеи мастеров прошлого.

Рисунки сангиной, созданные да Винчи и мадемуазель де Мондран (de Mondran), а также современное фото в двухтоновой технике.

Дуплекс сегодня используют всюду: от постеров к голливудским блокбастерам до рекламы Apple и Spotify. Смысл — выделиться, выглядеть иначе. И здесь на помощь приходят Photoshop Actions и мобильные приложения.

Несколько хороших уроков Photoshop, из которых вы узнаете, как получить этот модный эффект:

Дуплекс. Урок Photoshop #1

Дуплекс. Урок Photoshop #2

Дуплекс. Урок Photoshop #3

Разделение RGB-каналов, цветовые каналы, двухцветная двойная экспозиция

Еще один примечательный эффект, который работает на фотографиях, тексте и контурах. Иногда, чтобы получилось интересно, берут три разных изображения в трех различных цветовых каналах и все это совмещают. Другая разновидность — смесь глитча и разделения RGB-каналов. Некоторые дизайнеры идут дальше — добавляют еще и двойную экспозицию.

Вот несколько крутых уроков по работе с цветовыми эффектами в Photoshop и Affinity Photo. Не обращайте внимания, как эти приемы там называют — каждый волен именовать их по-своему.

Двухцветная двойная экспозиция в Photoshop

Двухцветная двойная экспозиция в Affinity Photo

Яркие, кричащие цвета и флуоресцентный дуплекс

И снова задача — обратить на себя внимание. Чтобы следовать тренду, щедро используем в дизайне сочные и сияющие оттенки.

Флуоресцентный дуплекс в дизайне сайта компании New Deal Design.

Тот же веб-дизайнерский тренд использовали при создании календаря для AfriSam 2018 Corporate Stationery.

По моде — в ярких насыщенных цветах — оформлен и сайт дизайнерского агентства ELJE Group.

Сайт Hackernoon использует сочные флуоресцентные тона, чтобы стать заметнее.

Главное в этом деле  — уместная смелость, готовность рискнуть и попробовать кричащие цвета в дизайне сайта, на обложке альбома или на постере.

Маски, вырезки, абстракционизм, кубизм

Бесконечно возвращающийся тренд, который прочно закрепился в графическом дизайне. Это может быть сочетание жирного шрифта, плоских цветных поверхностей, монтажа и маскирования. Этой технике почти 100 лет, как и выполненным ее средствами советским пропагандистским плакатам 1920-х годов. (На самом деле нам показывают афиши к раннесоветскому кино  — прим. пер.)

Чтобы создавать работы со сложной структурой и цветовым разнообразием, Анри Матисс в последнее десятилетие жизни использовал всего два материала: белую бумагу и гуашь. Так появились его знаменитые аппликации. Обычными ножницами художник превращал краску и бумагу в мир растений, животных, форм и фигур.

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

Иногда современные эффекты визуального наслоения напоминают коллажи Матисса.

Интересный эффект фотомаски можно получить за счет игры со шрифтами и простыми геометрическими фигурами.

Не существует четких и жестких правил, как получить такой эффект. Все зависит от ваших исходных материалов и изобретательности. Вдохновляйтесь искусством советского плаката, абстрактным кубизмом Пикассо и коллажами Матисса. Большинство приемов фотомаски и аппликации можно воссоздать с помощью маски слоя в Photoshop. Дело не столько в технических навыках, сколько в вашем творческом воображении и умении сочетать визуальные образы.

Тем не менее есть пара классных уроков Photoshop, которые на примере показывают, как создать подобные эффекты:

Как создать портрет из текста в Photoshop

Как создать букву-портрет в Photoshop

А вот еще один интересный урок — как с помощью слой-масок в Photoshop получить такой результат:

Из урока вы узнаете, как несколько простых приемов позволяют делать замысловатые иллюстрации с  несколькими слоями, маскированием, инструментом «Перо», базовым освещением и одной простой текстурой.

Анализируйте, будьте смелыми и прокладывайте свою колею

Сегодня творческая смелость — не выбор, а обязательное качество дизайнера. Ожидания публики растут, а ее внимание становится все труднее удерживать. Не стесняйтесь следовать трендам дизайна — берите и перерабатывайте их во что-то свое! Переверните привычное положение дел, исследуйте свои фантазии и совершите дерзкий творческий скачок!

Пройти обучение

28 сен 18, 17:22
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Мемы в… музеях

22 августа прошла международная акция #MusMeme. Фонды, музеи, галереи и библиотеки выкладывали мемы на основе произведений искусства O_o

Я собрала самые интересные из них.

 

 

 

 

 

 



Мне очень нравится, когда бренды умеют шутить. Я и сама старюсь создавать смешные картинки для GeekBrains. А как вы считаете, стоит ли серьезным компаниям использовать мемы в SMM? И какой у вас любимый мем?

 


24 авг 18, 15:07
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Больше идей! Техники устранения творческого ступора

Многим из нас знакомо ощущение полной профнепригодности. Картина маслом: сидишь ты, напротив тебя твой верный железный друг, и смотрите вы друг на друга грустными глазами. Часто проблема идёт от убеждения, что креатив — это про романтическое сидение с планшетом у берега океана, ожидание музы с чашечкой двойного эспрессо в одной руке, и с готовыми идеями — в другой.

Разберёмся, что такое креатив на самом деле и какие есть ловушки для музы.

Что такое креатив?

Я бы ограничилась тезисом, что креатив — это контролируемое вдохновение. Важно понимать, что дизайнер — это не художник, который выкладывает свои внутренние переживания на первый попавшийся холст. Мы — дизайнеры — работаем на прибыль бизнеса в том числе. А поэтому ограничены в сроках, рамках задачи и возможностях. Очень важно не только генерировать идеи, но и уметь их корректно и понятно доносить.

Какие есть стадии создания идей?

Первое, что всем нам нужно уяснить — мы не имеем права быть снобами, которые морщат нос при виде проекта про кошачьи лотки. Даже если вы когда-то случайно сделали из кота своей девушки бобтейла или просто не соотносите себя с этой тематикой, то вы должны уметь решать эту задачу. Я предпочитаю проповедовать философию, что визуальная коммуникация — это такой же полноценный язык, как английский или китайский. Кстати, есть теория, что речь появилась только для того, чтобы человек мог мыслить, разговаривая сам с собой, а графика — это вполне уместное логическое продолжение речи.

Поэтому нам придётся работать с брендами, чья аудитория может быть не близка. Обрадую: истинный профессионализм дизайнера кроется как раз в этом.

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

  1. Исследование.
  2. Генерация идей.
  3. Отбор лучшего.
  4. Презентация.

Стадия 1. Исследование 

Этот этап позволяет нам познакомиться с задачей глубже: узнать, что от нас хочет клиент из брифа, исследовать рынок и почитать об этой сфере. Кстати, если ты хочешь найти годные данные, рекомендую ставить в запросе поиска кавычки. Так произойдёт сортировка информации. Например, попадётся меньше шума в стиле «10 способов выселить кота незаметно» про исходном запросе «краткошерстные коты».

Обычно творческий ступор берёт начало именно на первом этапе. А почему? При игнорировании этого этапа, получается так, что у вас недостаточно знаний о задаче, вы не можете ухватить основную мысль. В таком случае старайтесь всегда возвращаться к началу и задаваться вопросом «Что еще я не знаю о задаче?».

Для сохранения результатов исследования сильно рекомендую сервис Pocket. Он сохранит ваши наработки в рамках одной темы и позволит не потеряться в количестве информации. Чтобы быть в теме современных трендов, сильно рекомендую сайт trendhunter — там много всякого интересующего глаз.

Стадия 2. Генерация идей 

Здесь мы, вооружившись результатом исследования и креативными техниками, приступаем к работе. Наша цель — найти максимальное количество решения задачи без оценочного суждения. Это значит, что если у вас появляются мысли в стиле «Илон Маск взял мешок картошки, чтобы вместе с Ченнингом Таттумом пойти на пляж воровать трусы бабушек» — мы не спешим к наркологу, а оставляем как возможно будущую гениальную идею. Оценить и прокомментировать нам предоставится возможность в будущем.

Что здесь может пойти не так? Да примерно всё.

Например, многим знакома песня «В среду я лучший креативщик!», а сегодня — пятница. Отсюда «ой, я лузер, ничего не успеваю», ну и далее по тексту. Проходили. Важно взять себя в руки, открыть лист бумаги и начать что-то делать. По началу будут ощущения, как утром первого января в спортзале, но потом дело пойдет. Решение — это всегда дисциплина. Если вы хотите идти дальше, поторгуйтесь сами с собой и пообещайте тому «самому лучшему креатору в среду», что за такой тяжкий труд купите ему что-то очень вкусное.

Второй момент — система «я все запомню!». Помните, в фильме «Аватар» учёные записывали все свои исследования на камеру? Вот вам следует делать тоже самое. Я сама когда-то самовлюбленно полагала, что мой мозг меня любит. Но через парочку лет работы и сотню забытых идей, я четко уяснила: наш мозг может и любит кофеиновый допинг, но вот фиксировать результаты как-то не особо. И никакие подношения с Эфиопских полей ему не помогут вспомнить когда-то интимно придуманную гениальную мысль.

Поэтому фиксируем все идеи на бумаге, в планшете, на диктофоне. Даже если они пришли в неожиданный момент в негаданном месте.

Какие есть техники генерации идей?

Покажу еще пару хороших техник в своём Эдемском саду.

Слышали про технику «Машина идей»? Здесь всё просто: ставите таймер на полчаса и накидываете идеи. Любые и без подробностей. Что-то в стиле «стакан, где вода превращается в вино» или «ручка, выкалывающая глаз за ошибки в жи-ши». Таких идей как можно больше. Затем выбираем 3-5 лучших и доводим до ума.

Если вы не поклонник хардкора, то вам подойдёт техника фокального синтеза. Берёте объект — например, лого для кофейни, и добавляете 3-5 категорий. Например: пол, стол, стена, ванная. Дальше ваша задача выписывать сначала все физические или химические характеристики, а затем всё, что связано с этими словами. Зарисуйте скетч каждого образа, например, если пол — рисуем дерево, синий цвет и так далее. А затем думайте, как их можно совместить в один образ, связанный с тематикой.

Есть ещё более лайтовый вариант — ассоциации. Открываете любую рандомную книгу, выбираете первое попавшееся слово и придумываете к нему тонну ассоциаций в течение 20 минут.

Я скромно считаю, что техники достойны отдельной статьи, поэтому на трёх вариантах остановимся. Но при этом это три самые распространённые техники в моей работе, которые позволяют мне придумывать, даже если настроение моё сегодня «не хочу, не буду». Если вам интересно почитать ещё — напишите об этом в комментариях.

Стадия 3. Отбор идей

На этом этапе важно понимать: наше мнение тут не актуально. Нельзя выбирать идею, только потому что вы придумали её под свою любимую песню Blink-182. Нельзя брать ту идею, которую придумала ваша девушка, а вы очень хотите искупить вину за опоздание на свидание. Нельзя брать идеи, невозможные в реализации.

А что можно тогда?

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

Какие ловушки уже наливают нам чай?

  1. Оценка идей, исходя из собственных представлений и стереотипов. «Вот, я не курю айкос, и они пускай не курят» — глубоко ценное мнение, но не важное в этой ситуации. Обычно, незнание аудитории на которую вы работаете, даёт вам право на категоричные убеждения. Как вы догадываетесь, уголовный кодекс дизайн-индустрии запрещает эгоизм. Поэтому смотрим на всё глазами аудитории и думаем о её проблемах и болях.
  2. Ребусы-шарады. Обучая людей на своём курсе, я сама сталкиваюсь с тем, что многие ребята стесняются простоты идей. Скажу честно, что лучше показаться простым скромным дизайнером, чем умным загадочным дураком. Безусловно, сложная идея кажется вам приближающей к генетическому родству с Джобсом, но на деле — если она непонятна для аудитории, то она бесполезна. Стремимся к простоте — и кубок лучшего дизайнера у нас в кармане.
  3. Синдром отличника. Это про «100% ответы». Не бывает одного решения для двух задач, поэтому в работе старайтесь не позволять мозгам сильно отфильтровывать идеи, которые просто не нравятся, и пользоваться собственным я. (Возвращаемся в пункт 1).

Стадия 4. Презентация идеи 

На этом этапе важно не увлечься, так как наши лучшие друзья — последовательность рассуждений и логичность. Из уютного черепа будет доноситься «друг, итак всем всё понятно», но не ведитесь. Лучшая практика для доказательства обратного — попробовать рассказать об идее человеку непосвященному. Если он не поднимет вопросительно бровь — вы справились.

На презентации идеи старайтесь не углубляться в тонкости техники или детали. Никому не интересно, что такое кривая безье, как бы вы убежденно не говорили. Рассказывайте так, будто вы на лекции в детском саду — и будет вам успех во взаимопонимании.

Саму презентацию можно оформить в Power point, Numbers или Figma. Я обычно делаю это в Фигме, как бы добивая своё творческое «я», подношая ему лавры красивенько оформленной презентации проекта.

Какой итог можем вынести?

Любая работа с людьми — это динамика. Динамика жизни, динамика эмоций, динамика технологий. Дизайнеры в прямом смысле находятся в эпицентре развития мира, поэтому останавливаться на знаниях, кругозоре и навыках мы попросту не можем. Вопреки распространённому мнению, дизайн — довольно сложная работа, требующая умелого переключения внимания и способности к постоянному самообучению и самоорганизации. Индустрия развивается быстро, и пока вы в движении — вы на коне!

 


14 июл 21, 13:03
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как получить предложение работать в Apple


Андрей Володин ― ИТ-предприниматель, программист под мобильные платформы. Занимается ускорением нейронных сетей на маленьких видеокартах. Работал над фоторедакторами, в том числе в команде популярного приложения Prisma. Дважды выигрывал чемпионат Apple по программированию WWDC Scholarship.

Сейчас я сделаю приложение, и оно взлетит

Я благодарен своему образованию. Считаю, что оно определило меня как специалиста и позволило мне получить оффер в Apple. Это то, без чего я себя уже не представляю. 

Я шел по пути self-education. Смотрел ролики на YouTube и просто под диктовку перепечатывал код с экрана. Брал игры, которые были похожи по механике, немного их менял. Это было крутым опытом на начальном уровне. 

Были первые игры, первые публикации, но они ничего не приносили. Было непонятно, как искать работу, что нужно для этого делать, какая работа мне нужна. Но был кураж  и такой клондайковский вайб: сейчас я сделаю приложение, и оно как взлетит!

Влез в код, написанный умными людьми

Я начал делать большую игру. Она не вышла, потому что я взвалил на себя огромное количество работы со звуковыми эффектами и с программированием. 
Особенно завалился на левел-дизайне. Это была головоломка, где я придумал механику, но не смог придумать достаточно увлекательные уровни, чтобы она работала. 

Пока делал игру, использовал Open-Source библиотеки GitHub с открытым исходным кодом. Тогда был очень популярен движок Cocos2d, но в нем не было нужного функционала. Я начал сам его разрабатывать. 

Это очень сильно толкает из пузыря начинающего разработчика. Ведь ты влезаешь в код, который написан умными людьми. Плюс это код, который использует тысячи других разработчиков. Благодаря этому я смог устроиться на работу, фактически познакомиться с коммерческим кодом с точки зрения качества и архитектуры.

Фотография с Тимом Куком

Открывался очередной сезон WWDC Scholarship. Я подал заявку на конкурс и успешно его выиграл. Сложилась целая серия удач, одна из самых больших ― Apple согласились покрыть мне стоимость поездки в Сан-Франциско. 

То, что там я испытал, не в сказке сказать, ни пером описать. Я ходил по Сан-Франциско, у меня были фотографии с Тимом Куком, Крейгом Фредери, Крисом Летнером, который создал Swift.
Нужно подавать свои документы везде. Самое главное, что нужно сделать для победы в конкурсе — знать, что он существует. 

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

Найдете 100 стажировок ― отправляйте заявку на каждую, куда-то точно пройдете. И когда пройдете первый раз, назад дороги уже не будет. Это навсегда поменяет вашу, потом все двери вам будут открыты.

Полная версия интервью доступна только студентам GeekBrains

Это лишь небольшая часть того, что Андрей Володин рассказал в интервью для нашего проекта GeekSpeak. 

В рамках этого проекта мы общаемся с известными учеными, разработчиками и бизнесменами. Они делятся своими знаниями и опытом. К каждому интервью прилагаются полезные материалы: книги, фильмы, лекции, презентации, подкасты и многое другое. 

Посмотреть расширенное интервью и получить подборку материалов могут только студенты платных программ GeekBrains. Хотите стать одним из них? Выберите свою программу обучения здесь.

 


15 авг 23, 07:05
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как выработать привычку не тратить все заработанные деньги

Антон Смирнов ― CEO в компании kongru.consulting. Тренер Microsoft. Более 12 лет в аналитике. Автор курсов по аналитике в GeekBrains. Автор канала Аналитика сегодня

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

Как распределить зарплату в % соотношении

Первое, что нужно сделать ― это расписать ваш ежемесячный и ежегодный заработок в процентах или долях. Лично мне в последние годы привычнее мыслить годовым заработком, так как всегда существуют премии, оплаты проектов и какие-то дополнительные заработки, на которые не всегда рассчитываешь. 

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

Необходимо добиться ситуации, когда зарплата надежно закрывает все эти потребности и при этом есть остаток в 10-15%, которые копятся либо на непредвиденные расходы, либо на что-то большое.

Логика больших трат в соотношении к зарплате: отпуск, автомобиль

У каждого человека есть потребность в жилье, отдыхе, а автомобиль делает жизнь намного комфортнее, особенно, если есть дети. Большинство из этих покупок нереально сделать с заработка за один месяц, я, по крайней мере, не могу. А те, кто могут так делать вряд ли читают эту статью, поэтому поделюсь своим подходом к такого рода покупкам.

Начнем с отпуска: на мой взгляд, отпуск не должен стоить сильно больше, чем заработок за один месяц, если кто-то платит за отпуск больше, то я бы расценил это как плохую финансовую привычку. Соответственно можно рассчитать сколько нужно процентов откладывать, чтобы накопить на отпуск ― если мы откладываем каждый месяц 10%, то за 10 месяцев накопим на отпуск. Если вы хотите отгулять полноценные 4 недели в течение года, то откладывать придется больше.

Автомобиль в студию 

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

Существует также много альтернатив для своего авто, если жить в городе: такси, каршеринг и существует множество расчетов, которые показывают, что это выгоднее. Но я лично считаю, что иметь свой автомобиль намного выгоднее, если есть необходимость ездить каждый день и особенно, если у вас есть дети.

Самый сложный вопрос

Теперь самый сложный вопрос ― это покупка квартиры. Задумываться об ипотеке или покупке квартиры имеет смысл, когда вы зарабатываете от 150 000 рублей (в некоторых городах от 250 000). 

Я помню, что в начале карьеры зарплата у меня была порядка 36 тысяч рублей и я сел и декомпозировал вопрос покупки квартиры с учетом линейного повышения по должности. И понял, что и за 15 лет не смогу ее купить и нужно придумывать какие-то дополнительные возможности (так я решил заниматься бизнесом). 

Если цель ― это своя квартира, то первым делом необходимо работать над повышением дохода, а не над повышением %, который вы откладываете ― это не поможет. Стоимость квартиры, в моем понимании, максимум должна быть в районе вашего пятилетнего заработка. 

Еще более сложный вопрос

Теперь об ипотеке: на мой взгляд ипотека ― это единственный вид займа, который может быть по-настоящему, выгодным. Но очень важно избегать сложного процента ― то есть когда процент накладывается не на сумму долга, а на сам процент. То есть срок ипотеки не должен сильно превышать 6-7 лет, иначе вы рискуете 90% платежа тратить не на тело кредита, а на проценты. И будете годами выплачивать только проценты.

Как откладывать с небольшого заработка

Я думаю, что откладывать реалистично с любого заработка, и лучше откладывать хоть по 100 рублей, чем не откладывать ничего. Как минимум это выработает привычку и вы поймете, сколько вам откладывать на то, что вы хотите. 

Когда я зарабатывал менее 40 000 рублей, я каждый месяц откладывал ровно по 100 долларов, чтобы усложнить себе путь к тому, чтобы потратить сбережения на что-то не принципиальное ― если накопления в рублях, то их можно потратить в любой момент, если же они в другой валюте, то нужно сначала ее обменять, и тут лень становится вашим союзником.

Помимо фокусировки усилий на увеличении доходов, пока доход небольшой, основное ― это контроль трат. Очень важно тратить только на самое необходимое, проще говоря на то, на что нельзя не тратить. Возьмем тот же отпуск: я в первые годы карьеры много лет не ездил в отпуск, потому что то, сколько у меня было скоплено, было недостаточно для того отпуска, который я хотел. Поэтому я предпочитал не иметь никакого. 

Каких трат лучше избегать

Хрестоматийный пример ― это избегать покупки кофе и вместо этого купить термос и носить кофе с собой. Кроме шуток, я посчитал, что за год потратил на покупное кофе порядка 200 000 рублей и поменял эту привычку.

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

Что важнее для вас: покупать каждый раз обновление телефона или отложить за 5 лет только на этой трате порядка полумиллиона рублей? Если второе, то проще определить то, на что вы можете не тратить и что напрямую не повышает ваш жизненный комфорт, причем это мало зависит от уровня дохода. Многие люди тратят ровно столько, сколько зарабатывают, но так будет практически нереально купить автомобиль или квартиру без кратного увеличения дохода.
 

 


21 авг 23, 13:29
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как начать продавать на маркетплейсах

Павел Мизрахи  предприниматель, автор обучающих курсов и преподаватель GeekBrains

Создавать свой сайт и подключить к нему платежные системы ― это дорого, долго и трудозатратно. Для небольшого предпринимателя это может непреодолимым барьером для старта бизнеса. Поэтому и появились маркетплейсы.
Ключевое преимущество модели маркетплейсов в том, что вы можете начать продавать и получать прибыль сразу же после проверки документов. Вам не нужно ни создавать свой сайт, ни подключать онлайн-кассу, ни думать про доставку до клиента.


У маркетплейса есть:


1.     Свой сайт и клиентское приложение, где клиенты выбирают и заказывают товары.
2.     Своя логистическая служба либо партнеры с широкой зоной доставки.
3.     Свой банк и система приема платежей
Вы как поставщик отдаете часть прибыли маркетплейсу для того, чтобы пользоваться его инфаструктурой для продажи своих товаров, а не создавать свою собственную.
Какие качества надо иметь, чтобы заниматься этим
«Работа на себя» всегда отличается от «работы на дядю». Когда работаешь на себя необходимо точно понимать к чему идешь, как к этому прийти и постоянно сверяться с планом.
Качества, которые определяют успех в бизнесе:
1.     Ответственность. Когда предприниматель работает на себя ему необходимо понимать, что только руководитель бизнеса в ответе за результаты бизнеса.
2.     Широкий профиль. Руководитель бизнеса должен хорошо разбираться в большом количестве сфер с которыми связан бизнес на 7 из 10, начиная от коммерческой части и заканчивая логистикой, контентом и финансами.
3.     Стратегическое мышление. Важно видеть далекую перспективу, выходящую за пределы модных трендов и предпринимать действия для того, чтобы прийти к реализации этих идей.
 

Какой бюджет? Где его взять?

Для старта достаточно бюджета в 50 тысяч рублей.
Лучше всего скопить свой капитал и стартовать. Не брать в долг.
Если вы увидите, что товары быстро продаются и вам необходимо доп финансирование, тогда можно рассмотреть кредитование, но стартовать с заемных средств рискованно.
Ведь если бизнес прогорит вы потеряете доход и еще придется отдавать долг.


Логистика и налоги не съедят все мои доходы?

Как же нам правильно рассчитать прибыль?
Перед тем как выводить товар в продажу необходимо не только проверить спрос и предложение товаров на маркетплейсах, но просчитать юнит-экономику каждого товара. В этом вам поможет онлайн-калькулятор маркетплейсов для расчета логистики. Вы вставляете туда ссылку и он покажет вам все расходы маркетплейса, включая комиссию и доставку. Такой онлайн-калькулятор есть у Озона и Яндекс.Маркета. Далее из оставшейся суммы вы вычитаете себестоимость товара, расходы на упаковку и доставку до СЦ/ПВЗ и налог.
По итогу мы с вами получим ориентировочную чистую прибыль.
Только после того, как вы проделаете такой расчет со всеми товарами можно начинать продавать.
Чистая прибыль после вычета всех расходов должна составлять не менее 30%.
Стоимость логистики при работе со своего склада стандартизированная и практически не меняется в зависимости от региона откуда пришел заказ. Рассчитывается она, исходя из размеров и веса товара.
 

Политика маркетплейсов ― что нужно знать чтобы эффективно торговать

Когда маркетплейсы в России создавались их главной целью было привлечь на свою платформу как покупателей, так и продавцов. Конкуренция было низкой и любой кто открывал магазин за несколько месяцев мог сделать Х10 по обороту.
Сейчас ситуация поменялась. К примеру на Озоне уже покупают 70% покупателей интернета. Практически в любой товарной нише есть как минимум несколько конкурентов.
В таких условиях, ключевым фактором успеха становится не просто наличие, а конкурентные преимущества в глазах покупателя.
Ключевые конкурентные преимущества сейчас это цена, хорошие фотографии и быстрые сроки доставки до покупателя.
Сделайте эти три вещи лучше конкурентов и вы станете лидером в своей нише.
 

Выводы

Маркетплейсы  это перспективный канал продаж для начинающих продавцов. Начать продавать легко. Нужно внимательно провести аналитику по товарным категория и тщательно оценить прибыльность с учетом всех расходов и доходов. Также нужно помнить, что заработок напрямую зависит от качества контента, как текстового, так и визуального. Успех бизнеса в целом зависит от нескольких качеств человека таких, как ответственность, умение разобраться в широком круге задач и стратегическое мышление.
Главное трудиться и не останавливаться, тогда успех обеспечен.

 


28 авг 23, 10:00
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Куда инвестору деть первый миллион прибыли

Михаил Морозов ― венчурный и финансовый аналитик. Дипломированный экономист с ИТ-экспертизой 5+ лет. Эксперт факультета Финансовой аналитики GeekBrains. Автор канала «Инвестиционный комитет».

На днях получил интересный вопрос: «Куда инвестору деть первый миллион прибыли?» Вопрос интересен несмотря на то, что вариантов ответов вроде как немного: 

  1. пойти на венчурный этап инвестиций
  2. реинвестировать эту прибыль в проект, выбрав bootstrap-стратегию 
  3. вывести дивиденды 

Далее ― детали. Вывести дивиденды можно путем продажи доли фаундеру или другому инвестору чтобы реинвестировать в другой потенциально более перспективный венчурный проект или реинвестировать в менее рискованный актив со сравнимой доходностью для диверсификации активов.

Вопросы для инвестора

Хорошо осмысленный ответ на вопрос, куда деть первый миллион прибыли, не так прост как кажется. Вот что нужно учесть, отвечая на него (и в этом заключен весь интерес):

  1. Сколько времени прошло с момента первых инвестиций? 
  2. Каков был плановый срок получения миллиона прибыли по этому проекту? На какую прибыль к этому сроку рассчитывал инвестор? Как бодро все это время проект шел «по графику»?
  3. Эта сумма прибыли пришла одномоментно или накопилась за полгода? 
  4. Сколько инвестор вложил в этот проект и когда: тот же миллион полгода назад, или 20 млн 5 лет назад? Какая рентабельность продаж получилась?
  5. Что сейчас происходит на этом рынке в плане темпов его роста и степени консолидации? 
  6. Какой прогноз по темпам роста и выхода крупных игроков в перспективе 5 лет? Какую долю рынка сможет занять продукт в 5-летней перспективе?
  7. Будет ли работать прежняя стратегия продукта в ближайшие 5 лет?
  8. Насколько сейчас активен венчурный рынок в целом (количество и суммы сделок) и в вашем сегменте в частности?
  9. Какие отношения с фаундером? Есть ли общее понимание стратегии развития продукта и проекта, сохранилось ли доверие между вами, можете ли вы вообще нормально общаться? Готов ли фаундер поделиться бременем лидера с новым инвестором, если выбрать вариант выхода на венчурный раунд?
  10. Есть ли у инвестора на примете другой крайне перспективный стартап, на который нет денег, кроме как дивиденды от текущего проекта?

Помним, что у венчурных инвестиций бывает фантастическая доходность, но в долгосрочном плане она вполне сравнима с доходностью инвестиций в акции, при том что венчурные риски кратно выше. «Аппетит к риску» инвестора за время, которое понадобилось для генерации прибыли в размере миллиона остался прежним, или как-то изменился? 

Таблица принятия решений

В такой многофакторной модели хорошо поможет все учесть и не запутаться таблица принятия решений. Ниже ― пример такой таблицы для нашего кейса:

Как работать с этой таблицей:

В верхней части таблицы мы перечисляем все условия и факторы, влияющие на решение. В нашем примере их 14.

В нижней ― возможные действия. У нас их всего три.

По столбцам моделируем различные ситуации с разной комбинацией условий. Я взял для примера 5 ситуаций, вы можете выбрать любое удобное вам количество, больше и меньше.

Финальный шаг ― в части «Действие инвестора» с помощью слова «Да»  выбираем одно действие отдельно для каждой ситуации. 

Чтобы было удобно, в поле «Условия и факторы решения» другим цветом можно выделить 3-5 самых приоритетных (критичных) условия, и выбирать действие в зависимости от комбинации этих приоритетных условий.

Как принять взвешенное решение

Достаточно простой логики, чтобы принять взвешенное верное решение. Например, если перспективы рынка туманны, отношения с фаундером омрачены разногласиями по каждому поводу, а вместо 1 млн мы рассчитывали к этому времени заработать 5, и при этом аппетит к риску у инвестора заметно снизился, то верным решением будет или забрать миллион и выйти из проекта по принципу «с паршивой овцы хоть шерсти клок». 

Или, если нервы, терпение и ресурсы позволяют, а что-то внутри инвестора мешает ему списать свои инвестиции в безвозвратные потери, то остается только продолжать «есть кактус» до момента возврата инвестору полной суммы инвестиций. 

Соответственно, если же по всем 14 (или по самым приоритетным) критериям у вас сложилась радужная, с вашей точки зрения, картинка, то есть смысл реинвестировать прибыль в проект, или же выйти на венчурный раунд. 

Финальное решение всегда остается за инвестором, и оно безусловно зависит от личных предпочтений и восприятия ситуации. А табличка принятия решений позволит увидеть картину целиком и во всех красках.

 


31 июл 23, 15:02
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

5 книг для начинающих разработчиков Objective-C

Программисты, которые только планируют изучать Objective-C, часто задают вопрос: «Обязательно ли перед этим учить С»? Мы подобрали хорошие книги для новичков, авторы которых по-разному отвечают на этот вопрос. Читайте экспертов и выбирайте, какой способ обучения больше подходит вам.

Программирование на Objective-C 2.0

Автор книги Стивен Кочан занимается программированием на С с момента выхода первого Mac в 1984 году. Он также автор нескольких бестселлеров по языку С, а его книга «Программирование на C для Mac» была включена в официальную подборку Apple Press Library.

Книгу по Objective-С Кочан написал в 2004 году, с тех пор она переиздавалась шесть раз.

Весь материал разбит на три большие части:

  • Язык Objective-C (все об основах языка).
  • Фреймворк Foundation (описывается работа с обширным набором готовых классов, которые образуют фреймворк Foundation).
  • Cocoa, Cocoa Touch и iOS SDK (обзор фреймворков Cocoa и Cocoa Touch, пошаговый разбор того, как разрабатывается простое приложение на iOS с использованием iOS SDK).

Первая глава начинается с написания простой программы на Objective-С и примера кода. Автор вводит новые понятия постепенно – весь материал выстроен так, чтобы к концу книги у читателя было достаточно понимания, чтобы написать первое iOS-приложение. Перед тем, как изучать это издание, разработчик советует немного разобраться с основами программирования – изучить теорию структуры данных и работы с памятью.

В предисловии Кочан пишет, что долго думал, в какой форме преподнести весь материал, которым он владеет. В результате автор решил рассказывать о языке Objective-C отдельно от С:

«Изучение всего языка C перед изучением Objective-C неприемлемо. Процедурный язык C содержит много средств, которые не являются необходимыми для программирования на Objective-C,  особенно на уровне новичков. На самом деле обращение к некоторым из этих средств противоречит методологии надежного объектно-ориентированного программирования. Также нет смысла в изучении деталей процедурного языка перед изучением объектно-ориентированного. Это дезориентирует программиста и мешает осваивать объектно-ориентированный подход к программированию. То, что Objective-C является расширением языка С, вовсе не означает, что нужно сначала выучить С. Поэтому я решил, что не буду начинать с обучения языку С и не буду предполагать, что читатель знает С. Вместо этого я принял необычный подход: обучение языку Objective-C и базовому языку С как объединенному языку с точки зрения объектно-ориентированного программирования».

Кочан считает, что программировать на этом языке можно научиться и с нулевым опытом в разработке, если приложить достаточное количество усилий и упорства. Это доказывает практический опыт его учеников и читателей книги, которые регулярно присылают автору положительные отзывы.

У Стивена Кочана также есть видеокурс по Objeсtive-C. Многие разработчики очень положительно отзываются об этих видеоуроках, единственный минус — они доступны только на английском.  

Objective-C. Программирование для iOS и MacOS

В предисловии автор Аарон Хиллегасс объясняет, что его подход в обучении будет отличаться от подхода его коллег. Хиллегасс не хочет подробно останавливаться на синтаксисе Objective-C, но планирует большую часть материалов посвятить объяснениям, «как работает программирование и что о нем думают опытные программисты».

Это книга не будет легкой для чтения, предупреждает автор:

«Каждый грамотный программист Objective-C должен достаточно глубоко понимать С. Кроме того, многие идеи, которые в Objective-C выглядят довольно сложными, уходят корнями в простые концепции С. Часто я буду представлять некоторую идею на С, а затем направлять вас к современному аналогу той же идеи на Objective-C».

Автор говорит, что эту книгу бесполезно просто читать. Лучшим способом изучать программирование он считает написание кода, совершение опечаток, их исправление и постепенное привыкание к основным закономерностям языка.

Аарон Хиллегасс – известный разработчик и основатель проекта The Big Nerd Ranch. В 90-х он работал в компании NeXT (основана Стивом Джобсом после ухода из Apple), в 2000 году Apple нанял Хиллегасса, чтобы обучать своих программистов разработке в Cocoa. Позднее Хиллегасс запустил проект The Big Nerd Ranch – компания, которая разрабатывает программное обеспечение для Apple.

У Big Nerd Ranch есть популярные курсы и серия книг по программированию. Все книги Аарона Хиллегасса вышли именно в этой серии и стали классикой среди мобильных разработчиков. У автора есть и другие известные книги по программированию на Objective-C: iOS Programming и Cocoa Programming for Mac OS X (не переведены на русский язык).

Программирование для iOS 7

Автор Мэтт Нойбург настоятельно рекомендует читать эту книгу с iOS Programming Fundamentals и называет эту книгу продолжением. Читать ее нужно с базовыми представлениями о языках C, Objective-C и среде Xcode.

Книга состоит из трех частей, посвященным программированию на iOS:

  1. Описание языка C (автор считает, что изучать этот язык необходимо и он при написании приложений под iOS используется гораздо чаще, чем многие думают). Введение в программирование на Objective-C. Объектно-ориентированные концепции. Механизмы работы кластеров и экземпляров.
  2. Среда Xcode (именно в ней разрабатываются приложения под iOS). Все стадии разработки приложения вплоть до их размещения в App Store. Важная глава – о работе программы Interface Builder.
  3. Язык Objective-С с точки зрения среды Cocoa Touch.

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

Мэтт Нойбург, в отличие от предыдущего автора, настаивает на изучении Objective-C с основ и в том числе, с изучения языка С. Еще в начале книги он с сожалением говорит о большом количестве программистов, которые пишут приложения для iOS без правильной базовой подготовки:

«Всеохватывающее стремление программировать для операционной системы iOS способствовало возникновению неприятной тенденции – начинать программировать, не умея это делать. Система iOS обеспечивает программиста силами, которые могут показаться совершенно безграничными, но которыми нельзя воспользоваться без серьезной подготовки. К сожалению, я часто сталкиваюсь с программистами, глубоко погруженными в создание интересных приложений, вопросы которых совершенно ясно показывают, что они не знакомы с азами поведения в том мире, в который они так счастливо и беззаботно погрузились».  

В первой главе Мэтт Нойбург более детально объясняет, почему для программирования на iOS необходимо в первую очередь изучить язык С:

  • Objective-C является надмножеством языка программирования С. Это означает, что Objective-C включает в себя С; все, что верно для С, верно и для Objective-C.
  • Часть интерфейса API-системы iOS основана на С, а не на Objective-C.

Для изучения языка С автор советует книгу Брайана Кернигана и Дениса Ритчи (создателя этого языка) The C Programming Language.

iOS. Приемы программирования

Как рассказывает автор Вандад Нахавандипур в предисловии, Objective-C занимает особое место среди языков, на которых он программировал с детства. Его привлекла чистота языка – «каждая команда делает всего одну вещь, и делает ее хорошо».

Автор рассчитывает, что у читателя есть начальный опыт создания приложений под iOS. Поэтому книга больше пригодится как дополнение к более базовым учебникам: в ней описаны удобные способы решения конкретных задач, с которыми сталкиваются и новички, и опытные программисты.

В книге уделено большое внимание обновлениям, которые появились для iOS 7. Автор подробно рассматривает фреймворки и классы, доступные для SDK iOS 7:

  • Фреймворк UIKit и его дополнение UIKit Dynamics.
  • Технология Grand Central Dispatch, с помощью которой Apple в основном обеспечивает параллелизм в iOS.
  • Комплект для программирования карт Map Kit и фреймворк Core Location.
  • Синтаксические анализаторы для JSON и XML.
  • Библиотека фотографий и фреймворк ресурсов Assets Framework.
  • Новейшие возможности Xcode.
  • Фреймворк Core Data.
  • Фреймворк Core Graphics.
  • Фреймворк Pass Kit.

Автор данного издания не настаивает на изучении языка С для разработки приложений под iOS (по крайне мере, ничего не пишет об этом в данной книге):

«Чтобы программировать приложения для iOS 7, вы должны знать основы языка Objective-C, с которым мы будем работать на протяжении всей этой книги. Как понятно из названия, язык Objective-C основан на С, но имеет определенные расширения, которые облегчают оперирование объектами. Объекты и классы имеют фундаментальное значение в объектно-ориентированном программировании (ООП). К числу объектно-ориентированных языков относятся Objective-C, Java, C++ и многие другие».

Objective-C Recipes

Эту книгу опытные разработчики советуют скорее как приложение к предыдущим, но, к сожалению, на русский язык она не переведена.

Автор книги Мэтью Кэмпбелл – ведущий разработчик приложения Tasting Notes (приложение для дегустации вин) и основатель компании Mobile App Mastery. Компания занимается обучением мобильных разработчиков. Он обучил разработке на iOS более 800 программистов, написал несколько книг и работает над новой – Objective-C Syntax Quick Reference.

Это книга рецептов, которые автор составил для себя в процессе работы над мобильными приложениями для iOS. Читатели особенно отмечают первую часть книги, приемы из которой можно сразу применять в работе, даже если вы не до конца разобрались с теорией Objective-C.

Примеры кода понятные – даже новичку удастся с легкостью их повторить. Эта книга не подойдет для изучения Objective-C с нуля, но станет хорошим продолжением прочтения предыдущих материалов, о которых мы говорили, поможет более глубоко погрузиться в разработку.

Кэмпбелл не пишет о том, что для изучения Objective-C нужно заранее изучить язык C. Он не акцентирует внимание на том, как лучше изучать этот язык, а делится результатами своей практической деятельности и, как мы видим из предисловия, большой любовью к этому языку:

«Изучение программирования сегодня – это изучение того, какую форму можно придать миру вокруг нас. У разработчиков Objective-C есть уникальная возможность создавать приложения, которые будут использовать люди по всему миру.

Пользоваться этим языком – одно удовольствие. В то время как другие языки часто кажутся неуклюжими, Objective-C грациозно демонстрирует свою мощь и разнообразие. Проблемы, которые кажутся нерешаемыми в других языках, с Objective-C тают на глазах. Это книга – об изучении Objective-C в его естественной среде. У Objective-С есть своя история о том, как решать проблемы элегантно. И он может рассказать ее в коде».

Пройти обучение

7 май 18, 16:15
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Темы с 71 по 80 | всего: 1491

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

7 пользователям нравится сайт lena2018.mirtesen.ru