Исследования технологии разработки мобильных приложений
Содержание
Введение....................................................................................................................... 7
1 Предметная область ................................................................................................. 9
1.1 Описание .......................................................................................................... 9
1.2 Установка программного обеспечения ..................................................... 133
1.3 Концепция разработки мобильных приложений ....................................... 17
1.4 Геолокация в android..................................................................................... 26
1.5 Установка VS 2010 for windows phone........................................................ 27
1.6 Графический редактор.................................................................................. 28
1.7 Варианты разметки для телефона ............................................................... 30
1.8 Сенсоры.......................................................................................................... 44
1.9 Программирование игр на XNA .................................................................. 50
2 Практическая часть ................................................................................................ 65
2.1 Разработка мобильного приложения .......................................................... 65
2.2 Реализация ..................................................................................................... 65
3 Технико-экономическое обоснование ............................................................. 7071
3.1 Цель проекта .................................................................................................. 71
3.2 Трудовые ресурсы, используемые в работе ............................................... 71
3.3 Оборудование, используемое в работе ....................................................... 71
3.4 Программное обеспечение, используемое в работе .................................. 72
3.5 Сроки реализации проекта ........................................................................... 72
3.6 Расчет стоимости произведенного проекта................................................ 73
3.7 Расчет затрат по социальному налогу......................................................... 77
3.8 Расчет амортизационных отчислений......................................................... 77
3.9 Расчет затрат на электроэнергию ................................................................ 78
3.10 Расчет накладных расходов ....................................................................... 79
3.11 Цена реализации.......................................................................................... 80
4 Безопасность жизнедеятельности......................................................................... 80
4.1 Анализ условий труда................................................................................... 80
4.1.1 Рабочее помещение................................................................................ 80
4.1.2 Характеристики используемого оборудования .................................. 84
4.1.3 Микроклиматические условия.............................................................. 84
4.2 Расчетная часть.............................................................................................. 84
4.2.1 Расчет искусственного освещения методом коэффициента использования отдела разработки ................................................................. 84
4.2.2 Расчет естественного освещения.......................................................... 86
4.2.3 Расчет системы кондиционирования ................................................... 88
Заключение ................................................................................................................ 90
Список используемой литературы .......................................................................... 91
Концепции разработки приложений
Целевую платформу для приложения следует выбрать android 2.3.3(froyo)
Будет создан новый проект, и откроется редактор пользовательского
интерфейса главной страницы приложения. Пользовательский интерфейс
приложений для android описывается декларативным образом на языке XML.
Eclipse позволяет как редактировать XML-код напрямую, так и использовать
графический Graphicallayout. В eclipse окно редактора пользовательского
интерфейса приложений для android разделено вертикально на две части. Слева
находится графический редактор, выполненный в виде телефона, а справа -редактор
XML-кода. Eclipse предоставляет пустой шаблон страницы, хотя
можно легко удалить почти любой элемент и сделать дизайн абсолютно не
похожим на шаблон по умолчанию. Изучить структуру проекта прилоожения
для android можно с помощью окна Обозреватель решений, который
представлен на рисунке 8.
Для лучшего понимания следует описать все файлы. Main.xml - разметка
главной страницы приложения на языке XML. Название страницы выбрано
произвольно. Нет никаких требований к тому, как будет называться главная
страница. Важно только указать в настройках приложения, какую страницу
первой увидит пользователь. По умолчанию в качестве такой страницы указана
именно эта страица. Main.xml - файл кода на языке java страницы Main.xml.
Если требуется добавить на какую-либо страницу код, то можно ис-
пользовать для этого файл с расширением xml. В данном случае этим файлом
является Main.xml. main.java-приложение кода, которая тесно работает вместе с
файлом main.xml. Данная разметка не имеет визуального представления и не
является страницей приложения. Файл main.java является тем местом, где
можно хранить данные и настройки для всего приложения. Кроме того, в этом
файле удобно определять стили и подключать ресурсы, используемые на
нескольких страницах приложения, хотя это и не обязательно. Main.java - файл
кода на языке java для Main.java. Здесь можно обрабатывать события уровня
приложения, такие как запуск, активация, деактивация и закрытие приложения.
Рисунок 8 - Обозреватель решений проекта
Кроме того, в Main.java вы можете перехватывать необработанные
исключения и отлавливать ошибки навигации между страницами.
AndroidManifest.xml - файл метаданных, являющийся манифестом приложения.
Он содержит множество настроек приложения: заголовок, имя первой
страницы, пути к значкам, определение необходимых приложению системных
возможностей и т. д. Во многих случаях данный файл редактируется не
напрямую, а с помощью окна свойств приложения. AndroidManifcst.xml -
простой манифест, необходимый для генерации хml-файла (пакета)приложения.
Редактировать вручную данный файл не требуется.
AssemblyInfo.es - еще один конфигурационный файл, в котором определяются
некоторые метаданные главной сборки(Assembly) приложения.
После описания всех файлов проекта, вернемся к разработке нашего
приложения. В данном примере мы разработаем самое очевидное приложение,
которое можно создать для телефона, а именно приложение для звонков по
заданному номеру. Приложение будут состоять из текстового поля для ввода
телефонного номера и кнопки Позвонить. Элементы управления будут
находиться на странице MainPage.xml:
Добавим на страницу MainPage.xml соответствующую разметку и
запустим приложение. Для того чтобы запустить приложение на отладку,
нажмите клавишу или кнопку Start с зеленой стрелкой на панели
инструментов либо выберите Debug - StartDebugging в меню. В выпадающем
списке на панели инструментов вы можете указать, где будет запущено
приложение: на эмуляторе или на реальном устройстве. В данном случае мы
будем запускать приложение на реальном устройстве. Эмулятор работает
независимо от Eclipse, поэтому его не требуется закрывать после каждого
сеанса отладки. Вы можете просто остановить отладку в Eclipse, нажав
комбинацию клавиш + или кнопку Stop на панели инструментов
либо выбрав в меню Debug-Stop Debugging, оставив при этом эмулятор
работающим. В следующий раз приложение будет запущено уже в работающем
эмуляторе, что займет немного меньше времени, чем "холодный" запуск. Кроме
того, при закрытии и новом запуске эмулятора его состояние сбрасывается.
Внешний вид запущенного приложения очень похож на то, что мы
видели в графическом редакторе в Eclipse. Большим отличием является наличие
группы цифр, показываемых в правом верхнем углу приложения (красные и
белые цифры). Это информация о производительности отрисовки приложения.
По умолчанию в шаблон проекта добавлен код, включающий показ данной
информации в режиме отладки.
После того,как мы запустили приложение,
попробуем ввести телефонный номер. Появится стандартная QWERTY- клавиатура как на
рисунке 8 для ввода текста, что нас не устраивает:
Intent intent = new Intent(Intent.ACTION_DIAL,
Uri.parse("tel:1234567"));
startActivity(intent);
Замена стандартного приложения для дозвона проходит в два этапа:
1) перехват Намерений, которые в настоящее время обслуживаются
стандартным приложением;
2) осуществление исходящих звонков и при необходимости управление
ими:
Стандартная клавиатура android как показано на рисунке 9.
Рисунок 9 - Клавиатура qwerty
Измените свойство inputscope элемента управления TextBox на TelephoneNumber:
Запустите приложение. Теперь при попытке ввести телефонный номер
появится подходящая для этих целей клавиатура, как показано на рисунке 10.
Рисунок 10 - Клавиатура для ввода телефонного номера
Для того чтобы позвонить по введенному номеру телефона,
воспользуемся задачей запуска PhoneCallTask. Создайте обработчик события
нажатия кнопки btnDial и подключите в файле манифесте read_phone_statе, а
также надо подключить простарнство имён telephonymanager:
Importandroid.telephonymanager;
В обработчике события нажатия кнопки позвоним по номеру телефона,
введенному в текстовое поле txtPhoneNumber :
private void btnDial_Click(object sender, RoutedEventArgs e)
var phoneCallTask = new PhoneCallTask();
phoneCallTask.PhoneNumber = txtPhoneNumber.Text;
phoneCallTask.DisplayName = "Дед Мороз"; phoneCallTask.Show();
Так как был введен только номер абонента, в коде, осуществляющем
звонок, мы указали, что имя абонента- Дед Мороз. Запустим приложение и
попробуйте позвонить кому-либо. Рассмотрим другие контексты ввода, кроме
Defaultи TelephoneNumber.
Text - данный контекст ввода задает раскладку клавиатуры, на которой
присутствует кнопка в виде смайла. Нажатие кнопки переключает клавиатуру в
режим ввода смайлов. Кроме того, при использовании данного контекста ввода
предлагаются подсказки по вводу слов, а также производится автоматическое
исправление ошибок.
URL - этот контекст ввода задает раскладку клавиатуры, на которой
присутствует кнопка .соm, предназначенная для быстрого ввода домена. Кроме
того, если зажать данную кнопку, появятся другие возможные домены: org,
.edu, .net. В локализованных версиях операционной системы поддерживаются
кнопки для локальных доменов. Также в раскладке присутствует клавиша
для перехода по ссылке.
Number - задает раскладку клавиатуры для ввода чисел.
EmailNameOrAddress - раскладка клавиатуры, на которой кроме кнопки
для ввода домена, как в режиме URL, присутствует кнопка @ для быстрого
ввода соответствующего символа.
Каждый телефон под управлением Windows Phone имеет аппаратную
кнопку «назад»,которая позволяет перемещаться между страницами
независимо от того, какому приложению принадлежит конкретная страница. В
реальных приложениях таких страниц может быть множество. Это напоминает
работу Web-браузера. С точки зрения пользователя различия между работой с
Web-страницами и приложениями для android минимальны. Для разработчика
различия более существенны, в первую очередь потому, что все страницы
конкретного приложения разделяют состояние этого приложения (статические
объекты и т. д.), но базовые концепции аналогичны. Представьте, что ваше
приложение для android является Web - сайтом, но вместо HTML - страниц и
кода на jаvascript у вас есть XML - страницы и код на языке Java. Аналогом
CSS в нашем примере будут стили, задаваемые также в XML - разметке. Важно
учесть только, что XML - стили в отличие от CSS не являются каскадными.
Кроме того, на телефоне доступны дополнительные возможности, такие как
создание анимации перехода между страницами, не доступные для HTML -
страниц, работающих в браузере.
Центральным элементом каждого приложения для android является
фрейм, представляющий собой объект класса frame. В данный фрейм
загружаются страницы приложения, унаследованные от класса frame. В
приложении может существовать только один фрейм. Страниц же может быть произвольное количество.
Программная навигация между страницами
осуществляется с помощью класса NavigationService. Кроме явного вызова
методов класса NavigationService, навигация может осуществляться с помощью
гиперссылок на страницах приложения. Гиперссылки представляют собой
объекты класса small text в object inspector есть функция hyperlink проставляем,
что нужно и получаем ссылку. Рассмотрим создание страниц и навигацию
между ними на практическом примере. Для этого создаем новое приложение с
помощью шаблона androidApplication под названием NavigationApp.
Допустим, мы создаем приложение - каталог телефонов на платформе
android, и нам требуется выводить информацию о фирмах-производителях, на-
пример о Nokia, НТС и Samsung. Создадим для каждого из производителей
новую страницу. Для этого в окне Обозреватель решений щелкним правой
кнопкой мыши на имени проекта и в контекстном меню выберите добавить -
новый элемент. Откроется окно, предлагающее выбрать тип элемента, который
мы хотим добавить в проект. Можно добавить страницы двух основных типов:
Страница android в книжной или в альбомной ориентации. Данные типы
страниц отличаются только ориентацией экрана по умолчанию, в первом случае
она будет портретной (высота больше ширины), а во втором ландшафтной
(ширина больше высоты). В процессе редактирования страницы всегда можно
поменять ее ориентацию, кроме того, можно организовать работу страницы, как
в портретном, так и в ландшафтном режиме, меняя ориентацию при повороте
телефона. В нашем случае выберим страницу с книжной ориентацией и в поле
Имя введем значение Lenovo.xml, как показано на рисунке 11.
В итоге создана новая страница. Поменяйте заголовок только что
созданной страницы на lenovo, чтобы при работе приложения можно было
понять, на какой странице мы находимся. Для этого в XML-коде страницы
lenovo.xml измените значение свойства Text текстового блока с именем
PageTitle.....
Введение....................................................................................................................... 7
1 Предметная область ................................................................................................. 9
1.1 Описание .......................................................................................................... 9
1.2 Установка программного обеспечения ..................................................... 133
1.3 Концепция разработки мобильных приложений ....................................... 17
1.4 Геолокация в android..................................................................................... 26
1.5 Установка VS 2010 for windows phone........................................................ 27
1.6 Графический редактор.................................................................................. 28
1.7 Варианты разметки для телефона ............................................................... 30
1.8 Сенсоры.......................................................................................................... 44
1.9 Программирование игр на XNA .................................................................. 50
2 Практическая часть ................................................................................................ 65
2.1 Разработка мобильного приложения .......................................................... 65
2.2 Реализация ..................................................................................................... 65
3 Технико-экономическое обоснование ............................................................. 7071
3.1 Цель проекта .................................................................................................. 71
3.2 Трудовые ресурсы, используемые в работе ............................................... 71
3.3 Оборудование, используемое в работе ....................................................... 71
3.4 Программное обеспечение, используемое в работе .................................. 72
3.5 Сроки реализации проекта ........................................................................... 72
3.6 Расчет стоимости произведенного проекта................................................ 73
3.7 Расчет затрат по социальному налогу......................................................... 77
3.8 Расчет амортизационных отчислений......................................................... 77
3.9 Расчет затрат на электроэнергию ................................................................ 78
3.10 Расчет накладных расходов ....................................................................... 79
3.11 Цена реализации.......................................................................................... 80
4 Безопасность жизнедеятельности......................................................................... 80
4.1 Анализ условий труда................................................................................... 80
4.1.1 Рабочее помещение................................................................................ 80
4.1.2 Характеристики используемого оборудования .................................. 84
4.1.3 Микроклиматические условия.............................................................. 84
4.2 Расчетная часть.............................................................................................. 84
4.2.1 Расчет искусственного освещения методом коэффициента использования отдела разработки ................................................................. 84
4.2.2 Расчет естественного освещения.......................................................... 86
4.2.3 Расчет системы кондиционирования ................................................... 88
Заключение ................................................................................................................ 90
Список используемой литературы .......................................................................... 91
Концепции разработки приложений
Целевую платформу для приложения следует выбрать android 2.3.3(froyo)
Будет создан новый проект, и откроется редактор пользовательского
интерфейса главной страницы приложения. Пользовательский интерфейс
приложений для android описывается декларативным образом на языке XML.
Eclipse позволяет как редактировать XML-код напрямую, так и использовать
графический Graphicallayout. В eclipse окно редактора пользовательского
интерфейса приложений для android разделено вертикально на две части. Слева
находится графический редактор, выполненный в виде телефона, а справа -редактор
XML-кода. Eclipse предоставляет пустой шаблон страницы, хотя
можно легко удалить почти любой элемент и сделать дизайн абсолютно не
похожим на шаблон по умолчанию. Изучить структуру проекта прилоожения
для android можно с помощью окна Обозреватель решений, который
представлен на рисунке 8.
Для лучшего понимания следует описать все файлы. Main.xml - разметка
главной страницы приложения на языке XML. Название страницы выбрано
произвольно. Нет никаких требований к тому, как будет называться главная
страница. Важно только указать в настройках приложения, какую страницу
первой увидит пользователь. По умолчанию в качестве такой страницы указана
именно эта страица. Main.xml - файл кода на языке java страницы Main.xml.
Если требуется добавить на какую-либо страницу код, то можно ис-
пользовать для этого файл с расширением xml. В данном случае этим файлом
является Main.xml. main.java-приложение кода, которая тесно работает вместе с
файлом main.xml. Данная разметка не имеет визуального представления и не
является страницей приложения. Файл main.java является тем местом, где
можно хранить данные и настройки для всего приложения. Кроме того, в этом
файле удобно определять стили и подключать ресурсы, используемые на
нескольких страницах приложения, хотя это и не обязательно. Main.java - файл
кода на языке java для Main.java. Здесь можно обрабатывать события уровня
приложения, такие как запуск, активация, деактивация и закрытие приложения.
Рисунок 8 - Обозреватель решений проекта
Кроме того, в Main.java вы можете перехватывать необработанные
исключения и отлавливать ошибки навигации между страницами.
AndroidManifest.xml - файл метаданных, являющийся манифестом приложения.
Он содержит множество настроек приложения: заголовок, имя первой
страницы, пути к значкам, определение необходимых приложению системных
возможностей и т. д. Во многих случаях данный файл редактируется не
напрямую, а с помощью окна свойств приложения. AndroidManifcst.xml -
простой манифест, необходимый для генерации хml-файла (пакета)приложения.
Редактировать вручную данный файл не требуется.
AssemblyInfo.es - еще один конфигурационный файл, в котором определяются
некоторые метаданные главной сборки(Assembly) приложения.
После описания всех файлов проекта, вернемся к разработке нашего
приложения. В данном примере мы разработаем самое очевидное приложение,
которое можно создать для телефона, а именно приложение для звонков по
заданному номеру. Приложение будут состоять из текстового поля для ввода
телефонного номера и кнопки Позвонить. Элементы управления будут
находиться на странице MainPage.xml:
Добавим на страницу MainPage.xml соответствующую разметку и
запустим приложение. Для того чтобы запустить приложение на отладку,
нажмите клавишу или кнопку Start с зеленой стрелкой на панели
инструментов либо выберите Debug - StartDebugging в меню. В выпадающем
списке на панели инструментов вы можете указать, где будет запущено
приложение: на эмуляторе или на реальном устройстве. В данном случае мы
будем запускать приложение на реальном устройстве. Эмулятор работает
независимо от Eclipse, поэтому его не требуется закрывать после каждого
сеанса отладки. Вы можете просто остановить отладку в Eclipse, нажав
комбинацию клавиш + или кнопку Stop на панели инструментов
либо выбрав в меню Debug-Stop Debugging, оставив при этом эмулятор
работающим. В следующий раз приложение будет запущено уже в работающем
эмуляторе, что займет немного меньше времени, чем "холодный" запуск. Кроме
того, при закрытии и новом запуске эмулятора его состояние сбрасывается.
Внешний вид запущенного приложения очень похож на то, что мы
видели в графическом редакторе в Eclipse. Большим отличием является наличие
группы цифр, показываемых в правом верхнем углу приложения (красные и
белые цифры). Это информация о производительности отрисовки приложения.
По умолчанию в шаблон проекта добавлен код, включающий показ данной
информации в режиме отладки.
После того,как мы запустили приложение,
попробуем ввести телефонный номер. Появится стандартная QWERTY- клавиатура как на
рисунке 8 для ввода текста, что нас не устраивает:
Intent intent = new Intent(Intent.ACTION_DIAL,
Uri.parse("tel:1234567"));
startActivity(intent);
Замена стандартного приложения для дозвона проходит в два этапа:
1) перехват Намерений, которые в настоящее время обслуживаются
стандартным приложением;
2) осуществление исходящих звонков и при необходимости управление
ими:
Стандартная клавиатура android как показано на рисунке 9.
Рисунок 9 - Клавиатура qwerty
Измените свойство inputscope элемента управления TextBox на TelephoneNumber:
Запустите приложение. Теперь при попытке ввести телефонный номер
появится подходящая для этих целей клавиатура, как показано на рисунке 10.
Рисунок 10 - Клавиатура для ввода телефонного номера
Для того чтобы позвонить по введенному номеру телефона,
воспользуемся задачей запуска PhoneCallTask. Создайте обработчик события
нажатия кнопки btnDial и подключите в файле манифесте read_phone_statе, а
также надо подключить простарнство имён telephonymanager:
Importandroid.telephonymanager;
В обработчике события нажатия кнопки позвоним по номеру телефона,
введенному в текстовое поле txtPhoneNumber :
private void btnDial_Click(object sender, RoutedEventArgs e)
var phoneCallTask = new PhoneCallTask();
phoneCallTask.PhoneNumber = txtPhoneNumber.Text;
phoneCallTask.DisplayName = "Дед Мороз"; phoneCallTask.Show();
Так как был введен только номер абонента, в коде, осуществляющем
звонок, мы указали, что имя абонента- Дед Мороз. Запустим приложение и
попробуйте позвонить кому-либо. Рассмотрим другие контексты ввода, кроме
Defaultи TelephoneNumber.
Text - данный контекст ввода задает раскладку клавиатуры, на которой
присутствует кнопка в виде смайла. Нажатие кнопки переключает клавиатуру в
режим ввода смайлов. Кроме того, при использовании данного контекста ввода
предлагаются подсказки по вводу слов, а также производится автоматическое
исправление ошибок.
URL - этот контекст ввода задает раскладку клавиатуры, на которой
присутствует кнопка .соm, предназначенная для быстрого ввода домена. Кроме
того, если зажать данную кнопку, появятся другие возможные домены: org,
.edu, .net. В локализованных версиях операционной системы поддерживаются
кнопки для локальных доменов. Также в раскладке присутствует клавиша
для перехода по ссылке.
Number - задает раскладку клавиатуры для ввода чисел.
EmailNameOrAddress - раскладка клавиатуры, на которой кроме кнопки
для ввода домена, как в режиме URL, присутствует кнопка @ для быстрого
ввода соответствующего символа.
Каждый телефон под управлением Windows Phone имеет аппаратную
кнопку «назад»,которая позволяет перемещаться между страницами
независимо от того, какому приложению принадлежит конкретная страница. В
реальных приложениях таких страниц может быть множество. Это напоминает
работу Web-браузера. С точки зрения пользователя различия между работой с
Web-страницами и приложениями для android минимальны. Для разработчика
различия более существенны, в первую очередь потому, что все страницы
конкретного приложения разделяют состояние этого приложения (статические
объекты и т. д.), но базовые концепции аналогичны. Представьте, что ваше
приложение для android является Web - сайтом, но вместо HTML - страниц и
кода на jаvascript у вас есть XML - страницы и код на языке Java. Аналогом
CSS в нашем примере будут стили, задаваемые также в XML - разметке. Важно
учесть только, что XML - стили в отличие от CSS не являются каскадными.
Кроме того, на телефоне доступны дополнительные возможности, такие как
создание анимации перехода между страницами, не доступные для HTML -
страниц, работающих в браузере.
Центральным элементом каждого приложения для android является
фрейм, представляющий собой объект класса frame. В данный фрейм
загружаются страницы приложения, унаследованные от класса frame. В
приложении может существовать только один фрейм. Страниц же может быть произвольное количество.
Программная навигация между страницами
осуществляется с помощью класса NavigationService. Кроме явного вызова
методов класса NavigationService, навигация может осуществляться с помощью
гиперссылок на страницах приложения. Гиперссылки представляют собой
объекты класса small text в object inspector есть функция hyperlink проставляем,
что нужно и получаем ссылку. Рассмотрим создание страниц и навигацию
между ними на практическом примере. Для этого создаем новое приложение с
помощью шаблона androidApplication под названием NavigationApp.
Допустим, мы создаем приложение - каталог телефонов на платформе
android, и нам требуется выводить информацию о фирмах-производителях, на-
пример о Nokia, НТС и Samsung. Создадим для каждого из производителей
новую страницу. Для этого в окне Обозреватель решений щелкним правой
кнопкой мыши на имени проекта и в контекстном меню выберите добавить -
новый элемент. Откроется окно, предлагающее выбрать тип элемента, который
мы хотим добавить в проект. Можно добавить страницы двух основных типов:
Страница android в книжной или в альбомной ориентации. Данные типы
страниц отличаются только ориентацией экрана по умолчанию, в первом случае
она будет портретной (высота больше ширины), а во втором ландшафтной
(ширина больше высоты). В процессе редактирования страницы всегда можно
поменять ее ориентацию, кроме того, можно организовать работу страницы, как
в портретном, так и в ландшафтном режиме, меняя ориентацию при повороте
телефона. В нашем случае выберим страницу с книжной ориентацией и в поле
Имя введем значение Lenovo.xml, как показано на рисунке 11.
В итоге создана новая страница. Поменяйте заголовок только что
созданной страницы на lenovo, чтобы при работе приложения можно было
понять, на какой странице мы находимся. Для этого в XML-коде страницы
lenovo.xml измените значение свойства Text текстового блока с именем
PageTitle.....
Толық нұсқасын 30 секундтан кейін жүктей аласыз!!!
Әлеуметтік желілерде бөлісіңіз:
Facebook | VK | WhatsApp | Telegram | Twitter
Қарап көріңіз 👇
Пайдалы сілтемелер:
» Туған күнге 99 тілектер жинағы: өз сөзімен, қысқаша, қарапайым туған күнге тілек
» Абай Құнанбаев барлық өлеңдер жинағын жүктеу, оқу
» Дастархан батасы: дастарханға бата беру, ас қайыру
Соңғы жаңалықтар:
» 2025 жылы Ораза және Рамазан айы қай күні басталады?
» Утиль алым мөлшерлемесі өзгермейтін болды
» Жоғары оқу орындарына құжат қабылдау қашан басталады?