Мне нравится язык D. Давно слежу за его развитием. Для D есть несколько GUI библиотек и биндингов, но я решил изобрести свой велосипед.
Хочу рассказать о своём проекте DlangUI. Надеюсь, что он кому-нибудь будет полезен.
На КДПВ скриншот DlangIDE — приложения, написанного на DlangUI.
Особенности:
Кроссплатформенность — поддерживаются Windows, Linux, Mac OSX; легкость портирования на другие платформы
Написан на D — легкорасширяемый
Использование Layouts для позиционирования элементов интерфейса
Масштабирование шрифтов и иконок в приложении в зависимости от разрешения экрана
Поддержка Unicode
Интернационализация — поддержка перевода UI на несколько языков
Аппаратное ускорение с помощью OpenGL (опционально)
Возможность отрисовки виджетов поверх OpenGL сцены (например, для UI в игре)
Небольшой размер исполняемого файла
Внешний вид интерфейса настраивается с помощью тем (две стандартные темы — светлая и темная)
Встраивание ресурсов в исполняемый файл
Открытый исходный код, под лицензией Boost License 1.0
Организаторы конкурса разработки ПО для Tizen OS с призовым фондом в $4000000 продлили сроки подачи работ — с 1 ноября до 8 декабря.
Еще не поздно отправить на конкурс свою программу.
Свежие новости. Из Google Play по жалобе LitRes было удалено приложение Moon+ Reader и Moon+ Reader Pro (читалка электронных книг, более 5 миллионов закачек).
Причина — возможность скачать книги с пиратских сайтов.
В графическом приложении для рисования используется SurfaceView и пара Bitmap размером с экран (например, я хочу изобразить плавное листание страниц книги).
На многих устройствах с большим разрешением экрана приложение падает c ошибкой AndroidRuntime: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
Проблема в том, что память для Bitmap, а также для SurfaceView резервируется из общей кучи процесса. Лимит размера кучи — невелик, как правило немногим больше 10Мб. И задается этот лимит при сборке системы.
Попытки улучшить ситуацию урезанием формата пикселя с 32 бит до 16 не слишком помогают. Проблема просто вылезает позже — например, при открытии окна поверх SurfaceView (видимо, при этом создается еще один Bitmap размером с экран).
Ограничение размера графических буферов программы в 3-4 экрана — это до обидного мало! Попробуем исправить такую несправедливость.