Смартфон для программиста

Есть два вопро­са: какой теле­фон купить, что­бы писать на нём код, и какой — что­бы тести­ро­вать там мобиль­ные при­ло­же­ния. Вот отве­ты на эти вопро­сы по состо­я­нию на фев­раль 2020 года.

Кое-как писать — любой смартфон

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

Из мину­сов:

  • Дья­воль­ски неудоб­ная мобиль­ная кла­ви­а­ту­ра — очень тяже­ло ста­вить скоб­ки и нуж­ные кавыч­ки.
  • Писать код мож­но, а испол­нять кто будет? Не на все язы­ки и не на все плат­фор­мы есть интер­пре­та­то­ры или ком­пи­ля­то­ры кода.

Если нужен «несго­ра­е­мый» вари­ант, бери­те Андро­ид с под­держ­кой USB Host (то есть к само­му устрой­ству мож­но под­клю­чать флеш­ки и дру­гую USB-периферию). Под­клю­ча­е­те к тако­му смарт­фо­ну кла­ви­а­ту­ру и пише­те код.

У Сам­сун­га есть тех­но­ло­гия Dex: она поз­во­ля­ет под­клю­чить смарт­фон к боль­шо­му мони­то­ру, кла­ви­а­ту­ре и мыши и исполь­зо­вать теле­фон как некое подо­бие ста­ци­о­нар­но­го ком­пью­те­ра. Отли­чие от обыч­но­го под­клю­че­ния в том, что интер­фейс Андро­и­да рас­тя­ги­ва­ет­ся на боль­шой экран, появ­ля­ет­ся под­держ­ка мно­го­окон­но­го режи­ма. Тех­но­ло­гии уже три года, но тол­ко­во­го соф­та под неё мало. Пока что не взле­те­ло.

Хитрый вариант с Айпадом

Если вам нуж­но мак­си­маль­но мобиль­ное реше­ние, рас­смот­ри­те такую связ­ку:

  1. Берё­те iPad Pro послед­не­го поко­ле­ния с USB-C.
  2. Берё­те Raspberry Pi чет­вёр­то­го поко­ле­ния, жела­тель­но в кор­пу­се.
  3. Уста­нав­ли­ва­е­те на Raspberry Pi нуж­ные вам сре­ды раз­ра­бот­ки, ком­пи­ля­то­ры и интер­пре­та­то­ры (ско­рее все­го, они и так будут в вашей сбор­ке).
  4. При необ­хо­ди­мо­сти уста­нав­ли­ва­е­те на Raspberry Pi про­грам­му VNC Server — она поз­во­ля­ет управ­лять Raspberry Pi в режи­ме уда­лён­но­го мони­то­ра.
  5. На Айпа­де уста­нав­ли­ва­е­те VNC Client.
  6. Соеди­ня­е­те про­во­дом Айпад и Raspberry Pi. Когда послед­ний загру­зит­ся, сту­чи­тесь к нему через VNC (при­дёт­ся погуг­лить, как назна­чить ему пра­виль­ный IP-адрес).
  7. У вас полу­ча­ет­ся почти пол­но­цен­ный Линукс с экра­ном и кла­ви­а­ту­рой от Айпа­да.

Подроб­нее вот у это­го дядь­ки (по-английски):

Для тестов на iOS

Основ­ной теле­фон — iPhone X. Если вы серьёз­но реши­ли про­грам­ми­ро­вать под iOS, то луч­ше сра­зу всё тести­ро­вать на теле­фоне с «чёл­кой» и свай­па­ми для управ­ле­ния. Нет смыс­ла брать более доро­гие моде­ли, ведь тех­ни­че­ски в них будет всё то же самое, но доро­же.

Исклю­че­ние — когда вы пише­те AR-приложение или софт для трёх камер: в этом слу­чае луч­ше взять топо­вый аппа­рат и убе­дить­ся, что всё рабо­та­ет как нуж­но. Бери­те на Ави­то у бро­шен­ных пар­ней.

Допол­ни­тель­ный — iPhone 6S. У боль­шин­ства поль­зо­ва­те­лей не будет на руках самой послед­ней моде­ли айфо­на. Ско­рее, это будет что-то из преды­ду­щих поко­ле­ний. Боль­шой цикл обнов­ле­ний, хоро­шее желе­зо и мно­го сер­вис­ных цен­тров в каж­дом горо­де — всё это про­дле­ва­ет теле­фо­нам жизнь, а зна­чит, нуж­но рас­счи­ты­вать на то, что вашей про­грам­мой будут в основ­ном поль­зо­вать­ся на устрой­ствах двух-трёхлетней дав­но­сти.

В 2020 году стан­дарт — iOS 13, поэто­му вам нуж­но мини­маль­но рабо­чее устрой­ство, кото­рое под­дер­жи­ва­ет эту опе­ра­ци­он­ную систе­му — iPhone 6S.


iPhone 6S — мини­мум для мобиль­ной раз­ра­бот­ки под iOS.

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

Android

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

Samsung A-серии. Это линей­ка теле­фо­нов началь­но­го уров­ня, но в ней есть почти все тех­но­ло­гии, кото­рые Сам­сунг исполь­зу­ет в дру­гих устрой­ствах: вырез под каме­ру на экране, жесты, своя систе­ма уве­дом­ле­ний.


Samsung Galaxy A01 — стар­то­вый аппа­рат в линей­ке, на кото­ром мож­но про­ве­рять любые при­ло­же­ния под Android.

Huawei. Из-за раз­но­гла­сий ком­па­нии Huawei с Google эти теле­фо­ны могут лишить­ся под­держ­ки сер­ви­сов Google, а глав­ное — мага­зи­на при­ло­же­ний. Что­бы убе­дить­ся, что ваше при­ло­же­ние будет рабо­тать, про­те­сти­руй­те его, напри­мер, на Huawei Mate 30 Pro. Если всё рабо­та­ет — може­те поко­рять китай­ский рынок. Заод­но потре­ни­ру­е­тесь рабо­тать с дат­чи­ком отпе­чат­ка паль­ца, встро­ен­ным пря­мо в экран.


Рабо­тать без сер­ви­сов Google — непро­стая задач­ка.

Meizu/Xiaomi. Эти аппа­ра­ты попа­ли в спи­сок из-за агрес­сив­ной рабо­ты с памя­тью. Даже в стан­дарт­ном режи­ме они выгру­жа­ют при­ло­же­ния из рабо­чей памя­ти, что­бы сокра­тить энер­го­по­треб­ле­ние устрой­ства и уве­ли­чить вре­мя до под­за­ряд­ки. Когда вклю­ча­ет­ся режим энер­го­сбе­ре­же­ния, всё ста­но­вит­ся ещё печаль­нее — ино­гда даже не при­хо­дят уве­дом­ле­ния или сооб­ще­ния в чат.

Если посто­ян­ная выгруз­ка из памя­ти может повли­ять на рабо­ту ваше­го при­ло­же­ния — луч­ше выяс­нить это зара­нее.


Meizu M3 — клас­си­че­ский при­мер стран­ной рабо­ты с памя­тью и уве­дом­ле­ни­я­ми.

Irbis/Jinga/Fly/Digma/Vertex. Напо­сле­док — любой китай­ский теле­фон за 3–5 тысяч руб­лей. Он нужен для того, что­бы понять, как будет вести себя ваша про­грам­ма на непред­ска­зу­е­мом и сла­бом желе­зе. Если всё хоро­шо — мы вас поздрав­ля­ем, вы уме­е­те писать каче­ствен­ный и ста­биль­ный код с боль­шим запа­сом проч­но­сти.