Сложно представить серьезное приложение, которое не нуждается в хранении данных. В Android существует несколько способов для этого: SharedPreferences, использование файлов, использование веб-сервисов и Sqlite базы данных. Сегодня мы рассмотрим последний вариант в достаточном объеме. Суть проблемы При создании приложения с базой данных можно разделить работу на 3 этапа: Описание моделейПрочесть статью

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

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

Продолжение статьи Основы использования SQLite в Android. Часть 1: cоздание и использование базы данных. После всего вышеописанного можно сказать что создание инфраструктуры для работы с базой данных делится на два этапа: Описание наследника SQLiteOpenHelper Описания методов для выполнения запросов к базе и работы с курсором. Это может быть адаптер, ноПрочесть статью

Хотите посмситься из приложения? Проще простого. Uri smsUri = Uri.parse("smsto:3300052"); Intent intent = new Intent(Intent.ACTION_VIEW, smsUri); intent.putExtra("sms_body", "Привет, Платон! Пиши еще!"); startActivity(intent);Прочесть статью

Ниже описаны два подхода: один для немедленного звонка, другой — переводит вас в диалер (экран набора номера и кнопок контролирующий вызов) с заранее определенным номером. //Покажет "звонилку" с номером 3300052 Uri dialUri = Uri.parse("tel:3300052"); Intent dialIntent= new Intent(Intent.ACTION_DIAL, telUri); // Сразу звонит на 3300052 Uri callUri = Uri.parse("tel:3300052"); Intent callIntent=Прочесть статью

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

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

Если вы используете закладки для навигации по приложению, то часто бывает удобным сделать внизу экрана. Это делается элементарно при помощи разметки <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp"> <!— располагаем FrameLayout НАД TabWidget, обратите внимание на веса для элементов —> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="wrap_content"Прочесть статью

Дамы и господа! Администрация idev.by рада сообщить две замечетальные новости: мы открыли регистрацию теперь доступна новая рубрика «Вопрос-Ответ» Зарегистированные пользователи смогут получать рассылку с нашего сайта, а главное задавать вопросы, получать на них ответы, а так же сами отвечать на вопросы других пользователей. Мы надеемся, что вам понравится! Зарегистрироваться можноПрочесть статью

В этой статье написано о том, как получить информацию о местоположении. Рассмотрен самый простой метод без излишеств. Теория Для начала поставим перед собой задачу — узнать, что мы можем знать о местоположении устройства (iPhone, iPad) и как заполучить эту информацию. Узнать мы можем следующее: Высоту над уровнем моря GPS координатыПрочесть статью

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

Если вы планируете использовать внешнюю память (карту памяти) в вашем приложение, то не лишним будет метод проверяющий ее наличие описанный ниже. public static boolean isSDCardMounted() { return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); }Прочесть статью

Очень простой способ вводить в UITextField только цифры: -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if(![string intValue] && ![string isEqualToString:@»»] && ![string isEqualToString:@»0″]) { return NO; } else { return YES; } } У меня в проекте возникла необходимость вводить только цифры и если на iPhone это решается установкой UITextField.keyboardType в соответствующееПрочесть статью

Универсальные вещи — это хорошо, но и изобретать велосипеды не стоит. Android имеет особую проблему с потоками и несколько решений для нее. Эта проблема — ANR. Это выглядит вот так. Если вы видите это то вы (… кирпичи?), на самом деле вы делаете следующие движения в консоли. $ adb pullПрочесть статью

Блуждая по просторам Интернета, наткнулся на замечательный сайт на котором собраны скриншоты большого количества красивых приложений. Все скриншоты разбиты по категориям (например, «Calculators» или «Logins») и доступны в двух режимах — Normal и @2x (Retina). Все красота на ходиться на сайте http://pttrns.comПрочесть статью

Известно, что IPA можно установить на iOS устройство с помощью iTunes. Но есть особенность, что один девайс всегда нужно синхронизировать с одним iTunes. А что делать, если нужно установить IPA, но устройство не синхронизировано с вашим iTunes? Конечно же, в этом случае можно использовать iTunes, но все содержимое устройства будетПрочесть статью

Для работы с файлами действующим следующим образом: Запись (сериализация) объекта в файл: FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE); ObjectOutputStream os = new ObjectOutputStream(fos); os.writeObject(myObjectInctance); os.close(); Чтение (десериалазация) объета из файла: FileInputStream fis = context.openFileInput(fileName); ObjectInputStream is = new ObjectInputStream(fis); SomeClass someClassInstance = (SomeClass) is.readObject(); is.close(); return someClassInstance; Добавьте сюда обработку исключенийПрочесть статью

Для загрузки доступна новая версия прошивки iOS 5.1. Но так как мы девелоперы — нас интересует, что нового принесет девелоперам эта прошивка. Вместе с ней стал доступен для загрузки XCode 4.3 & iOS SDK 5.1 beta. Надеюсь в XCode исправят постоянные креши и медленная работа документации. Из нового API доступнаПрочесть статью