Сложно представить серьезное приложение, которое не нуждается в хранении данных. В 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=Прочесть статью

Вы мечтаете о карьере разработчика для мобильных устройств? Готовы продираться через тернии изучения новой платформы (Mac, iOS) и быть на передовой современных информационных технологий? Вас не пугает суровый конкурсный отбор? Вы видите свое место в команде профессионалов высочайшего класса? Готовы работать в наиболее изменчивой (и поэтому наиболее требовательной) среде? ДляПрочесть статью

Суть проблемы Повторное использование кода – это хорошо. Если оно не сопряжено с копи-пастингом – это еще лучше. Поэтому в данной серии статей мы рассмотрим создание собственного класса-наследника View, с возможностью задания его свойств через xml-атрибуты в layout-файле контейнера. Это позволит использовать его в проекте повторно, не создавая тонны xml-копи-пасты. ВПрочесть статью

Для этого можно создать категорию на NSString // нужно подключить CommonDigest.h #import <CommonCrypto/CommonDigest.h> // и можно определить категорию на NSString @interface NSString (MD5_Hash) + (NSString *) md5String:(NSString*)concat; @end @implementation NSString (MD5_Hash) + (NSString *) md5String:(NSString*)concat { const char *concat_str = [concat UTF8String]; unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5(concat_str, strlen(concat_str), result); NSMutableString *hashПрочесть статью

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

Добро пожаловать на новый 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Прочесть статью