Баг локализации в Instagram

В недавно обновленной версии Instagram (начиная с версии 3.4.0) добавилась поддержка локализации для 25 языков, в том числе и русском. К сожалению, без ляпов не обошлось: некоторые переведенные слова оказались явно длиннее их англоязычных аналогов, в результате чего они стали «накладываться» на другие слова. Могу с большой уверенностью предположить, что ответственные за локализацию приложения даже не удосужились посмотреть, как же стал выглядеть UI на других языках, ибо такую проблему не заметить просто невозможно.

instagram2 instagram

Про iTunes Match

Приобрел годовую подписку на iTunes Match. Цена невелика и составляет 800 руб. Преимущества очевидны: доступность музыки на всех Apple-устройствах; скачивается лишь то, что слушаем (т.е. не придется держать локально десятки ГБ музыки, все хранится в облаке); высокая степень совпадений с уже имеющимися в iTunes музыкальными композициями (соответственно, треки заменяются на более качественную по звучанию музыку). Кто-то говорит, что iTunes Match — это неофициальная легализация пиратской музыки, но я этого мнения не придерживаюсь. Все таки покупая музыку в том же iTunes, вы получаете файл с DRM-защитой от копирования, которая также подтверждает факт ее покупки.

Чтобы избежать хаоса после импорта музыки в iTunes перед отправкой в iCloud (особенно тем, кто никогда еще не использовал iTunes как медиплеер), можно проделать следующее:

1. Создать в iTunes нужный плейлист, перетащить туда соответствующие музыкальные файлы
2. Выделить в плейлисте эти файлы, ПКМ ->; «Загрузить в iCloud». После этих действий начнет работать iTunes Match: музыка будет просканирована, и если она уже имеется в магазине iTunes, то напротив трека появится статус «Совпадение», в противном случае файлы, у которых отсутствуют совпадения, будут загружены в iCloud, а напротив трека появится статус «Выгруженные».
3. Повторять пункты 1-2 до тех пор, пока не перенесете все музыкальные треки

Хорошую инструкцию по работе iTunes Match можно также найти здесь.

P.S.: локализация хромает…

iTunes_match

ADB-драйвер для Samsung Galaxy Tab

Если Windows 7 не сможет автоматически установить ADB-драйвер для Samsung Galaxy Tab, то необходимо установить набор ПО Samsung Kies, в комплекте с которым идут необходимые драйвера.

[Android] Про баг с отсутствием месяца «декабрь»

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

Факт того, что данный баг был пропущен в релизе, свидетельствует о том, что и в Google тоже работают обычные люди, которым свойственно ошибаться. Однако, остается непонятным, как такой очевидный дефект мог быть пропущен службой тестирования. Возможно, виной тому является слишком большое доверие автотестам и TDD, ведь, если не ошибаюсь, так таковых ручных тестировщиков в Google нет, и в большинстве своем продукты проходят бета-тестирование.

Android: добавление русской раскладки

У меня есть служебный телефон Sharp SH-12C, который предназначен для японского оператора NTT Docomo (хотя, он отлично работает и в сетях других операторов). Т.к. сей аппарат предназначен сугубо для японского потребителя, то в нем присутствуют только два языка — непосредственно японский и английский. Беда состоит в том, что в качестве ввода для клавиатуры нельзя выбрать какой-либо другой язык, а ведь так хочется иметь русскую раскладку!

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

Возврат денег в App Store, Google Play и WP Marketplace

Статья о том, как попытаться вернуть деньги за купленное приложение в магазинах App Store, Google Play и Windows Phone Marketplace.

Тестирование Android-приложения с помощью Eclipse + Testdroid Recorder

1. Создайте учетную запись на сайте «Testdroid«.
2. Установите плагин «Testdroid» в Eclipse: «Help» -> «Eclipse Marketplace», в поле «Find» вписываем «Testdroid Recorder». После того, как плагин будет найден, жмите «Install».
3. В качестве примера создайте Android-проект из sample: «File» -> «New» -> «Other» -> «Android Project». В окне «New Android Project» задать имя проекта и выбрать «Create project from existing samples», нажать кнопку «Next». В следующем окне выберите нужную версию Android, которая имеет примеры. В окне «Select Sample» выберите «NotePad» и нажмите кнопку «Finish».
4. Выделите созданный проект и вызовите контекстное меню. Затем «Android Tools» -> «New Test Project». Задайте имя проекта <AddNoteTest> и сохраните проект.
5. Выделите созданный проект и вызовите контекстное меню. Затем «Build Path» -> «Configure Build Path…». В открывшемся окне перейдите на вкладку «Libraries», нажмите кнопку «Add External JARs» и выберите файл robotium-solo-<version>.jar (последнюю версию можно скачать на оф.сайте). Перейдите на вкладку «Order and Export» и отметьте чек-бокс напротив robotium-solo-<version>.jar. Нажмите кнопку «ОК».
6. В пакете com.example.android.notepad.test создайте новый класс с именем <AddNoteTest> и со следующим содержанием:

package com.example.android.notepad.test;
 
import android.test.ActivityInstrumentationTestCase2;
import com.example.android.notepad.NotesList;
import com.jayway.android.robotium.solo.Solo;
 
public class AddNoteTest extends ActivityInstrumentationTestCase2{
 
	private static final String APP_PACKAGE_NAME = "com.example.android.notepad";
	protected Solo solo;
	protected Integer screenWidth = null;
	protected Integer screenHeight = null;
 
	public AddNoteTest() {
		super(APP_PACKAGE_NAME, NotesList.class);
	}
 
	public void setUp() throws Exception {
		solo = new Solo(getInstrumentation(), getActivity());
	}
 
	public void testAddNote() throws Exception {
		solo.waitForActivity("NotesList", 500);
		solo.sleep(2500);
		solo.clickOnMenuItem("Add note", true);
		solo.waitForActivity("NoteEditor", 500);
		solo.sleep(2500);
		solo.clearEditText(0);
		solo.enterText(0, "Hello world!");
		solo.sleep(2500);
		solo.goBack();
		solo.waitForActivity("NotesList", 500);
		solo.sleep(2500);
		solo.clickOnMenuItem("Add note", true);
		solo.waitForActivity("NoteEditor", 500);
		solo.sleep(2500);
		solo.clearEditText(0);
		solo.enterText(0, "New");
		solo.sleep(2500);
		solo.goBack();
		solo.waitForActivity("NotesList", 500);
		solo.sleep(2500);
		solo.clickInList(1);
	}
 
	@Override
	public void tearDown() throws Exception {
		//Robotium will finish all the activities that have been opened
		solo.finishOpenedActivities();
	}
}

7. Выделите созданный проект и вызовите контекстное меню. Затем «Run As…» -> «Android JUnit Test». В зависимости от того, где вы тестируете приложение (эмулятор или телефон), на экране устройства запуститься приложение, в котором начнут автоматически происходить действия, описанные в тесте.

В следующей заметке я расскажу, как с помощью Testdroid Recorder создавать Record/Play тесты.

Про RetinaPad

Давно мечтал о чем-то похожем для своего iPad’а и вот, наконец-то, нашел! RetinaPad позволяет отображать приложения, созданные для iPhone с поддержкой Retina-дисплеев, в высоком разрешении и на экране iPad, без всяких там замыленных графических составляющих и зубчатых шрифтов.

RetinaPad устанавливается из Cydia, репозиторий BigBoss и стоит $2,99, а если добавить репозиторий repo.insanelyi.com, то RetinaPad достанется совершенно бесплатно =)