вторник, 19 июня 2012 г.

Батл Samsung Galaxy S3 vs HTC One X

Хочу к концу лета взять себе новый телефон вот думаю между Samsung Galaxy S3 или HTC One X. Оба аппарата довольно интересные , но безусловно у каждого есть свои плюсы и минусы
Далее хочу представить обзор в котором сравниваются данные аппараты.



P.S Лично я наверно склонюсь все таки к Samsung Galaxy S3 , так как у него более емкая батарея , что для меня немаловажно , а у HTC как обычно больное место батарея :( . Хотя может к концу лета выйдет более интересный вариант и буду уже рассматривать его.

понедельник, 18 июня 2012 г.

Создание Splash


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

public class Splash extends Activity{

   private final int SPLASH_DISPLAY_LENGTH = 4000;  

   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
         super.onCreate(savedInstanceState);  
         requestWindowFeature(Window.FEATURE_NO_TITLE);  
         setContentView(R.layout.splash);  
         
         new Handler().postDelayed(new Runnable() {  
            @Override
              public void run() {  
                 Intent mainIntent = new Intent(Splash.this,Main.class);                   Splash.this.startActivity(mainIntent);  
                 Splash.this.finish();  
              }  
         },SPLASH_DISPLAY_LENGTH);
   } 
}
 
Тут константа SPLASH_DISPLAY_LENGTH задается для определения времени показа данной Activity. Также мы указываем наш layout.

    Intent mainIntent = new Intent(Splash.this,Main.class);  
    Splash.this.startActivity(mainIntent);  
    Splash.this.finish(); 

Здесь переход от Splash к Main Activity. Работу с Intent мы разбирали в предыдущем уроке

P.S картинка Splash которая используется в данном уроке относится к первому приложению которое я написал на данной платформе, однако до сих пор не выложил в маркет :)  

воскресенье, 17 июня 2012 г.

Работа с Intent

Intent класс в Android который позволяет обмениваться данными между разными Activity внутри конкретного приложения , а также между приложениями в самой системе. Для того чтобы перейти от Activity1 к Activity2 необходимо выполнить следующее

Intent testIntent = new Intent(Activity1.this,Activity2.class);
startActivity(testIntent);


Часто нужно передать данные между Activity поэтому в данном классе предусмотрены методы putExtra (String name, Parcelable[] value) и много методов для извлечения данных в зависимости от типа передаваемых данных. Давайте рассмотрим следующий пример :

String login = "Bart";
testIntent.putExtra("login",login);


Здесь мы ложим в наш testIntent переменную типа String. Для того чтобы теперь Activity2 получило данные которые "лежат" в testIntent необходимо использовать метод getStringExtra

String username;
Intent testIntent = getIntent();
username = testIntent.getStringExtra("login");


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

Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "123456789"));
startActivity(dialIntent)

Также необходимо указать в AndroidManifest.xml permission для совершения данного действия

<uses-permission android:name="android.permission.CALL_PHONE" />

Для вызова стандартного активити для отправки смс:

Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("sms_body", "Some SMS text");
startActivity(smsIntent);


Для открытия ссылки в браузере :

Intent browseIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(browseIntent);


При этом приложение предложит выбрать браузер в котором просматривать данную ссылки. Если это будет ссылка на YouTube то можно будет открыть через него. На этом наверно завершу знакомство Intent. Хочу сказать что это далеко не все возможности класса Intent. Более подробно поговорим в последующих уроках.






четверг, 5 января 2012 г.

Темы для Eclipse

Недавно смотрел на YouTube урок где обьяснялась работа с Json и увидел что у человека в Eclipse код не на белом фоне , а на темном  и все выглядит очень симпатично. Загуглив сразу же наткнулся на сайт на котором масса тем на любой вкус. Я поставил одну из темных тем . Мне очень нравится, даже такое ощущение что глаза теперь меньше устают :)

Кстати забыл написать ссылку данного сайта - http://www.eclipsecolorthemes.org/ . Чтобы поставить тему надо проделать нехитрые манипуляции , которые мне лень описывать . Так что лучше посмотрите видео :) 



среда, 4 января 2012 г.

Полезная литература


Захотелось написать про литературу по разработке для платформы Android . Честно говоря на русском языке стоящих книг практически нет :( Однако я откопал на хабре пост одного товарища который посоветовал книгу "Android за 24 часа." . Что ж могу сказать действительно достойная книга с нормальным переводом . Книга разделена на 24 часа , в ней много практики и в итоге получается готовое приложение.
Ссылка : http://depositfiles.com/files/1twgy037v
Также есть книги из серии Pro Android переведенные на русский язык , хотя на русский это наверно не совсем уместно здесь говорить так как читая данные творения , думается о том что книгу переводили албанцы . Не советую , хотя может кому-то понравится :)
Самый лучший вариант читать в оригинале , хотя не всем хватит силенок усвоить.
Также хочу сказать , что эти книги бесполезные без хороших базовых знаний Java  . Из книг по Java хочу посоветовать Шилдта http://rutracker.org/forum/viewtopic.php?t=923524 .
Ну и такую книгу с немного "смешным" названием "Программирование на Java для детей, родителей, дедушек и бабушек" http://rutracker.org/forum/viewtopic.php?t=3791349 . В общем думаю пока хватит , и вообще почти все вещи необходимые есть в документации .

понедельник, 2 января 2012 г.

Инструменты для разработки


Сегодня утром проснулся с мыслью , что надо написать в блог какие инструменты нужны для разработки приложений . Вообще ресурс №1 это конечно - http://developer.android.com . Тут собрана вся оффициальная документация по API , множество Dev Guide , офф. блоги разработчиков платформы , а также информация по установке SDK . Также нам конечно нужен гугл :) Как же без него . Ну а если по существу то нам нужно :
1. Скачать Android SDK  http://developer.android.com/sdk/index.html
2. Скачать Java JDK с сайта http://www.oracle.com/technetwork/java/javase/downloads/index.html           3. Скачать  Eclipse SDK с сайта http://www.eclipse.org/downloads/ под вашу ОС. 
После этого ставим Java JDK (важно чтобы JDK и Eclipse были одинаково разрядными, то есть 32 битными или 64-х ) и Eclipse . Теперь устанавливаем Android SDK , после установки необходимо выкачать необходимые версии SDK для разработки , с помощью утилиты SDK Manager.exe лежащей в корне с SDK 

После того как установили нужные SDK необходимо установить в Eclipse - ADT (Android Developer Tools) - заходим в вкладку Help - > Install New Software , там нажимаем кнопочку Add . В поле Location пишем адрес - https://dl-ssl.google.com/android/eclipse/ , в Name пишем что угодно :) , хотя лучше назвать ADT или что-то в этом роде чтобы потом ориентироваться . После установки ADT , Eclipse перезапуститься и попросит вас указать местонахождения SDK , если не попросит , то выбираем вкладку Window -> Preferences -> Android и там есть поле SDK Location , там указываем SDK . Все теперь почти все готово для разработки . Осталось создать только эмулятор - открываем AVD Manager (иконка с девайсом в Eclipse) , нажимаем New, называем наше устройство в поле Name , и указываем версию Android , и размер карты памяти (SD Card) - к примеру 100 mb . Все нажимаем Create AVD . Вроде все :)  Теперь можно создавать проекты и тестировать их в эмуляторе . 

Первый пост

В общем всем привет =) Решил по мере изучения платформы Android , описывать все подводные камни в данном блоге . Надеюсь инфа размещенная здесь будет кому-то полезна. Кстати немного о себе . Я студент 3 курса , учусь на программиста . На данный момент не работаю , однако собираюсь устраиваться на работу именно в мобильной разработке , в частности под платформу Android. В универе учил в основном C#(а также прочую устаревшую ересь - MS Access и т.д) , однако с 3 курса попал по распределению на Java и понял , что Java мне больше нравится чем шарп. Телефон на платформе Android уже довольно давно (около 1.5 года) , однако учить платформу начинаю только сейчас (наверно мозгов раньше не хватало или лень просто :) ). На часах около часа ночи , башка совсем не варит , чтобы написать здесь какие-то умные мысли , поэтому всем спокойной ночи . Кстати всех с Новым годом! ))