Пишем приложения для Android на Basic

Тема в разделе "Мобильные ОС", создана пользователем SpaceW, 19 июн 2012.

Модераторы: ADMiNZ
  1. SpaceW

    SpaceW Постоялец

    Регистр.:
    27 сен 2007
    Сообщения:
    95
    Симпатии:
    45
    Когда-то давным-давно я учил VisualBasic, по сути это был первый язык программирования, на котором я научился кодить. Несмотря на то, что большинство смеется над этим “недоязыком”, я до сих пор питаю к нему теплые чувства и до сих пор храню те первые программы, написанные мной – романтика и ностальгия :)

    Правда в современном мире мне уже давно не приходится с ним сталкиваться и дистрибутив спакойненько пылится на стареньком HHD.
    И вот я случайно я узнаю, что, оказывается, на бэйсике можно писать приложения для Android’a!

    И называется эта штука: Basic4Android.

    Если кто-нибудь, так же как и я, когда-то любил поковыряться с VB, а теперь не имеет повода с ним работать – то считайте, что повод появился (если, конечно, вы на javaне перешли и не пишите под ней на андройд) :D

    Так как я не занимаюсь мобильными приложениями, то такой вариант меня заинтересовал, ведь, как минимум, можно писать для своего адройдофона, а как максимум (судя по отзывам на форуме Basic4Android) – успешно пишутся и коммерческие приложения.

    Но наилучший вариант: посмотреть сам сайт Basic4Android

    Конкретная ложка дёгтя: к сожалению, продукт платный от 49$ до 249$. Я, правда, не удержался – купил вариант за 99$ с 50% скидкой по купону. За 49,5$ - я получаю возможность бесплатного обновления на 2 года (кстати, не зря – сегодня вышла версия 2.0 с существенными изменениями) и полный доступ к форуму Basic4Android, ко всем закрытым разделам.

    Если кто захочет тоже прикупить, то могу дать купон на 50% скидку, обращайтесь в личку.

    Basic4Android в бою (копипаст) :
    Я предлагаю посмотреть на этого зверя в бою и разобрать небольшой пример, который покажет процесс разработки простенькой галереи.
    Первое что меня порадовало при знакомстве с b4a это то, что у него свой небольшой и шустрый редактор.
    [​IMG]
    Ничего сверхъестественного. Только самое привычное и необходимое: редактор кода и визуальный редактор форм.

    Чуть позже я обнаружил и по достоинству оценил возможность рисовать формы прямо внутри штатного эмулятора Android либо виртуальной машины.

    А теперь перейдём к примеру. Сделаем с помощью b4a простенький просмоторщик картинок, который ищет все картинки в папке «sdcard/Images» и выводит их в виде скролируемой галереи.

    Для этого в визуальном редакторе добавляем элемент «HorizontalScrollView».
    [​IMG]
    Выставляем ему такие начальные настройки:
    [​IMG]
    Затем, растянем этот элемент по ширине окошка. Для этого зайдем во вкладку «Designer scripts» и введем следующий код:
    Код:
    HorizontalScrollView1.Width = 100%x
    После этого дизайнер можно закрыть. Перед закрытием вам предложат сохранить слой. Сохраняем:
    [​IMG]
    Затем переходим в редактор кода и в глобальных модулях определяем объекты к которым будем обращается:
    Код:
    Sub Process_Globals
        'These global variables will be declared once when the application starts.
        'These variables can be accessed from all modules.
    Dim imagesFolder As String : imagesFolder = File.DirRootExternal & "/Images"
    Dim Bitmaps As List
     
    End Sub
     
    Sub Globals
        'These global variables will be redeclared each time the activity is created.
        'These variables can only be accessed from this module.
    Dim HorizontalScrollView1 As HorizontalScrollView
     
    End Sub
    А это листинг основной части программы с комментариями:
    Код:
    Sub Activity_Create(FirstTime As Boolean)
    If FirstTime Then 'Если Activity загружается впервые то
        ProgressDialogShow("Загрузка картинок") ' показываем прогресс-бар
        Bitmaps.Initialize ' инициализируем массив в котором будут лежать картинки
        Dim files As List ' инициализируем массив в котором будут лежать пути к файлам
       
        If File.Exists(imagesFolder, "") = False Then 'проверка наличия папки с картинками
            ToastMessageShow("Такой папки нет: " & CRLF & imagesFolder, True)
            Return ' Прости меня Хосспади
        End If
        files = File.ListFiles(imagesFolder) 'Вносим в массив все файлы в указанной папке
        Dim f As String
        For i = 0 To files.Size - 1
            DoEvents 'Необходимо чтоб прогрессбар реагировал
            'Берем i-тый файл. Если он кончается на .jpg то закидываем в список картинок
            f = files.Get(i)
            If f.ToLowerCase.EndsWith(".jpg") Then
                'объявляем переменную в которую поместим картинку
                'загружаем в нее изображение и добавляем в массив картинок
                'на всякий случай делаем ограничение в 50 картинок
                Dim b As Bitmap
                b.InitializeSample(imagesFolder,f,350dip,350dip)
                Bitmaps.Add(b)
                If Bitmaps.Size > 50 Then Exit
            End If
        Next
        'Это сообщение которое появится по окончании загрузки
        ToastMessageShow("Найдено " & Bitmaps.Size & " картинок", True)
        ProgressDialogHide 'скрываем прогрессбар
    End If
     
    Activity.LoadLayout("main") 'Загружаем в текучую Activity наш слой
    'подгоняем ширину панелей внутри HorizontalScrollView1 под всю ленту картинок
    HorizontalScrollView1.Panel.Width = 350dip* files.Size
     
    'Добавляем ImageView для каждой картинки рядом с друг другом
    'саму картинку вставляем бэкграундом
    For i = 0 To Bitmaps.Size -1
        Dim iv As ImageView : iv.Initialize("")
        Dim bd As BitmapDrawable
        bd.Initialize(Bitmaps.Get(i))
        iv.Background = bd
        HorizontalScrollView1.Panel.AddView(iv, 5dip + i * 350dip, 5dip, 340dip, 340dip)
    Next
     
    End Sub
    Запускаем Debug
    Отвечаем на запросы о названии пакета и названия программы:
    [​IMG]
    [​IMG]
    В результате получаем галерею с плавной прокруткой.
    [​IMG]
    Все оказалось просто :)
     
  2. binh

    binh

    Регистр.:
    6 сен 2011
    Сообщения:
    267
    Симпатии:
    75
    Тема конечно оч. интересная и с распространением андроида стаёт все актуальнее. Но увы имеется много подводных камней по напсанию приложений на Васике. Самый главный камень преткновения - это отсутствие хорошей информации по написанию приложений под андроид, того что есть сейчас маловато будет... Другое дело на java. Второй камушек - ограниченная среда разработки, я думаю что далеко не все виды приложений можно будет на нём писать.
    В общем по своим религиозным убеждениям я выбрал java, но не исключаю что попробую и на Бейсике что-то состряпать, ведь в школьные годы тоже активно на нём кодил.
     
  3. SpaceW

    SpaceW Постоялец

    Регистр.:
    27 сен 2007
    Сообщения:
    95
    Симпатии:
    45
    Определенно, если мобильные приложения – это работа с основным заработком, то пересаживаться с javaбессмысленно. А вот вспомнить молодость, да еще и навоять чего-нибудь полезного – отличное хобби может получится :) К тому же ребята продукт развивают, обещают, что в недалеком будущем можно будет писать практически любое приложение – что ж посмотрим
     
  4. Barbos

    Barbos Писатель

    Регистр.:
    15 июн 2011
    Сообщения:
    4
    Симпатии:
    4
  5. densmirnov

    densmirnov Создатель

    Регистр.:
    18 дек 2012
    Сообщения:
    26
    Симпатии:
    4
    Класс. Простите, но учитывая общий уровень приложений под андроид — только поддержки VB им еще не хватало!
     
  6. pavzen

    pavzen Создатель

    Регистр.:
    29 авг 2013
    Сообщения:
    12
    Симпатии:
    2
    Бейсик, на сколько я помню, язык интерпретируемый.
    Сильно уверен в том, что вряд ли это все будет нормально работать.
    Нативные С++ приложения - зачастую виснут и тормозят.
     
  7. adward

    adward Создатель

    Регистр.:
    28 сен 2012
    Сообщения:
    11
    Симпатии:
    16
    посоветуйте нормальный мануал с чего начать, в какую сторону рыть.. на VB писать особого желания нет, но хочется узнать - на чём вообще пишут и с какой стороны подходят.
    желательно русскоязычное "для чайников"
    спасибо.
     
  8. Prometeus

    Prometeus Постоялец

    Регистр.:
    9 дек 2013
    Сообщения:
    57
    Симпатии:
    12
  9. BoRzZoY

    BoRzZoY Создатель

    Регистр.:
    16 фев 2013
    Сообщения:
    11
    Симпатии:
    5
    Зачем это, зачем VB все поддерживают( Считаю его мало функциональным и вообще не нужным в данную эру развития)
    Только C, только хардкор :)
     
  10. Prometeus

    Prometeus Постоялец

    Регистр.:
    9 дек 2013
    Сообщения:
    57
    Симпатии:
    12
    Например в Enterprise сегменте VB и VBA очень распространён. Он позволяет максимально быстро вносить изменения в программу и добавлять новые функции. Сишники за аналогичную работу требуют больше денег, дольше делают, а в итоге их приложения чаще валятся с ошибками.