Àíîòàö³ÿ
Ó ðîáîò³ ïðåäñòàâëåíî ðåçóëüòàòè ïðîºêòóâàííÿ òà ðîçðîáêè íàòèâíîãî ìîá³ëüíîãî çàñòîñóíêó äëÿ îïåðàö³éíî¿ ñèñòåìè Android, ïðèçíà÷åíîãî äëÿ ìîäåðí³çàö³¿ âçàºìî䳿 çäîáóâà÷³â âèùî¿ îñâ³òè ç ³íôîðìàö³éíî-îñâ³òí³ì ñåðåäîâèùåì óí³âåðñèòåòó. Äîñë³äæåíî ïðîáëåìó íèçüêî¿ ìîá³ëüíî¿ àäàïòèâíîñò³ ³ñíóþ÷èõ óí³âåðñèòåòñüêèõ âåáñèñòåì òà çàïðîïîíîâàíî ï³äõ³ä äî ¿¿ âèð³øåííÿ íà îñíîâ³ ñó÷àñíîãî äåêëàðàòèâíîãî ñòåêó òåõíîëîã³é: Kotlin, Jetpack Compose òà Material 3.
Îñîáëèâó óâàãó ïðèä³ëåíî àðõ³òåêòóðí³é îðãàí³çàö³¿ ïðîãðàìíîãî çàáåçïå÷åííÿ ³ç çàñòîñóâàííÿì ï³äõîä³â Clean Architecture òà MVVM, ùî çàáåçïå÷óþòü ìàñøòàáîâàí³ñòü, ï³äòðèìóâàí³ñòü òà ³çîëÿö³þ á³çíåñ-ëîã³êè. Äëÿ ³íòåãðàö³¿ ç óí³âåðñèòåòñüêîþ ñèñòåìîþ Timetable ðåàë³çîâàíî ã³áðèäíèé ìåõàí³çì îòðèìàííÿ äàíèõ, ÿêèé ïîºäíóº âèêîðèñòàííÿ Retrofit äëÿ ðîáîòè ç JSON API òà Jsoup äëÿ îáðîáêè HTML-êîíòåíòó.
Ó ðîáîò³ òàêîæ ðîçãëÿíóòî ïèòàííÿ öèôðîâî¿ ³íêëþçèâíîñò³ òà çàáåçïå÷åííÿ äîñòóïíîñò³ ïðîãðàìíîãî çàáåçïå÷åííÿ äëÿ øèðîêîãî êîëà êîðèñòóâà÷³â. Îá´ðóíòîâàíî âèá³ð ì³í³ìàëüíî¿ âåðñ³¿ Android 7.0 (API 24), ùî äîçâîëÿº îõîïèòè ïîíàä 99% àêòèâíèõ Android-ïðèñòðî¿â [6].
Ðîçðîáëåíèé çàñòîñóíîê ³íòåãðîâàíî ç ³íôîðìàö³éíîþ ñèñòåìîþ Timetable SNU òà ðåàë³çîâàíî ÿê Open Source ïðîºêò ³ç â³äêðèòèì âèõ³äíèì êîäîì ï³ä ë³öåí糺þ GPL 3.0 [5, 7].
Êëþ÷îâ³ ñëîâà: Android, Kotlin, Jetpack Compose, Clean Architecture, MVVM, ³íôîðìàö³éíî-îñâ³òíº ñåðåäîâèùå, ìîá³ëüíèé çàñòîñóíîê, Jsoup, Retrofit, öèôðîâà ³íêëþçèâí³ñòü.
Âñòóï
Öèôðîâà òðàíñôîðìàö³ÿ çàêëàä³â âèùî¿ îñâ³òè ïåðåäáà÷ຠíå ëèøå àâòîìàòèçàö³þ âíóòð³øí³õ ïðîöåñ³â, àëå é çàáåçïå÷åííÿ åôåêòèâíî¿ âçàºìî䳿 âñ³õ ó÷àñíèê³â îñâ³òíüîãî ïðîöåñó ç ³íôîðìàö³éíèìè ðåñóðñàìè óí³âåðñèòåòó. Îäíèì ³ç êëþ÷îâèõ âèêëèê³â ñó÷àñíèõ óí³âåðñèòåòñüêèõ ³íôîðìàö³éíèõ ñèñòåì º íåäîñòàòíÿ àäàïòàö³ÿ äî ìîá³ëüíîãî ñåðåäîâèùà.
Ïîïðè çíà÷íèé ð³âåíü ôóíêö³îíàëüíî¿ ðîçâèíåíîñò³ áàãàòüîõ óí³âåðñèòåòñüêèõ âåáñèñòåì, ¿õ âèêîðèñòàííÿ íà ìîá³ëüíèõ ïðèñòðîÿõ ÷àñòî ñóïðîâîäæóºòüñÿ íèçüêîþ åðãîíîì³÷í³ñòþ, ñêëàäíîþ íàâ³ãàö³ºþ, íàäì³ðíèì êîãí³òèâíèì íàâàíòàæåííÿì ³ çàëåæí³ñòþ â³ä áðàóçåðíîãî ñåðåäîâèùà. Ó ðåçóëüòàò³ âèíèêຠðîçðèâ ì³æ òåõí³÷íèìè ìîæëèâîñòÿìè ñèñòåìè òà ðåàëüíèìè ïîòðåáàìè ñòóäåíòñüêî¿ àóäèòîð³¿.
Ïèòàííÿ ðîçâèòêó òà ìîäåðí³çàö³¿ ³íôîðìàö³éíî-îñâ³òíüîãî ñåðåäîâèùà óí³âåðñèòåòó ðîçãëÿäàþòüñÿ ó íèçö³ íàóêîâèõ ïðàöü, çîêðåìà ó äîñë³äæåííÿõ, ïðèñâÿ÷åíèõ öèôðîâ³çàö³¿ îñâ³òíüîãî ïðîöåñó òà ïîáóäîâ³ óí³âåðñèòåòñüêèõ ³íôîðìàö³éíèõ åêîñèñòåì [1]. Ïðîòå ïðàêòè÷í³ àñïåêòè ñòâîðåííÿ íàòèâíèõ ìîá³ëüíèõ ð³øåíü äëÿ ³íòåãðàö³¿ ç ³ñíóþ÷èìè ñàìîïèñíèìè ïëàòôîðìàìè çàëèøàþòüñÿ íåäîñòàòíüî äîñë³äæåíèìè.
Ìåòîþ ðîáîòè º ðîçðîáêà íàòèâíîãî ìîá³ëüíîãî çàñòîñóíêó äëÿ ÎÑ Android, ³íòåãðîâàíîãî ç óí³âåðñèòåòñüêîþ ñèñòåìîþ Timetable SNU, ùî çàáåçïå÷óº ï³äâèùåííÿ äîñòóïíîñò³, øâèäêîñò³ òà çðó÷íîñò³ âçàºìî䳿 êîðèñòóâà÷³â ç àêàäåì³÷íîþ ³íôîðìàö³ºþ.
Îá’ºêò äîñë³äæåííÿ òà òåõíîëîã³÷íèé ñòåê
Îá’ºêòîì äîñë³äæåííÿ º ïðîöåñ îïòèì³çàö³¿ äîñòóïó çäîáóâà÷³â âèùî¿ îñâ³òè äî àêàäåì³÷íî¿ ³íôîðìàö³¿ â óìîâàõ â³äñóòíîñò³ Android ìîá³ëüíî¿ àäàïòàö³¿ óí³âåðñèòåòñüêî¿ ³íôîðìàö³éíî¿ ñèñòåìè.
Äëÿ ðåàë³çàö³¿ ìîá³ëüíîãî çàñòîñóíêó áóëî îáðàíî ñó÷àñíèé ñòåê òåõíîëîã³é Android-ðîçðîáêè, îð³ºíòîâàíèé íà äîâãîòðèâàëó ï³äòðèìêó òà â³äïîâ³äí³ñòü àêòóàëüíèì ³íæåíåðíèì ïðàêòèêàì.
Îñíîâíîþ ìîâîþ ïðîãðàìóâàííÿ îáðàíî Kotlin, ÿêà çàáåçïå÷óº âèñîêèé ð³âåíü áåçïåêè êîäó, ï³äòðèìêó àñèíõðîííîãî ïðîãðàìóâàííÿ é ³íòåãðàö³þ ç ñó÷àñíèìè Android-ôðåéìâîðêàìè. Äëÿ ïîáóäîâè ³íòåðôåéñó âèêîðèñòàíî äåêëàðàòèâíèé ï³äõ³ä Jetpack Compose, ÿêèé äîçâîëÿº ñïðîñòèòè êåðóâàííÿ ñòàíàìè UI òà ï³äâèùèòè ãíó÷ê³ñòü êîìïîíåíòíî¿ àðõ³òåêòóðè [3]. ³çóàëüíà êîíöåïö³ÿ çàñòîñóíêó ðåàë³çîâàíà â³äïîâ³äíî äî ðåêîìåíäàö³é Material 3. Öå äîçâîëèëî ñôîðìóâàòè ì³í³ìàë³ñòè÷íèé ³ ôóíêö³îíàëüíî îð³ºíòîâàíèé ³íòåðôåéñ ³ç ôîêóñîì íà øâèäêîìó îòðèìàíí³ êîðèñòóâà÷åì íåîáõ³äíî¿ ³íôîðìàö³¿. Ó ïðîöåñ³ àíàë³çó ìåðåæåâî¿ âçàºìî䳿 âåáñèñòåìè Timetable SNU áóëî âèÿâëåíî âíóòð³øí³ JSON-åíäïî³íòè, ÿê³ íå ìàëè ïóáë³÷íî¿ äîêóìåíòàö³¿. Öå äîçâîëèëî ðåàë³çóâàòè ³íòåãðàö³þ çíà÷íî¿ ÷àñòèíè ôóíêö³îíàëó ÷åðåç Retrofit ³ Kotlin Serialization.
Âîäíî÷àñ îêðåì³ ìîäóë³ óí³âåðñèòåòñüêî¿ ñèñòåìè, çîêðåìà ðîçêëàä çàíÿòü é åêçàìåíàö³éíà ñåñ³ÿ, áóëè äîñòóïí³ âèêëþ÷íî ó ôîðìàò³ HTML. Äëÿ ³íòåãðàö³¿ òàêèõ êîìïîíåíò³â çàñòîñîâàíî á³áë³îòåêó Jsoup, ùî çàáåçïå÷óº ïàðñèíã HTML-äîêóìåíò³â ³ ïîäàëüøó òðàíñôîðìàö³þ äàíèõ ó âíóòð³øí³ ìîäåë³ çàñòîñóíêó [8].
Òàêèì ÷èíîì, ðåàë³çîâàíî ã³áðèäíèé ìåõàí³çì îòðèìàííÿ äàíèõ, ÿêèé äîçâîëÿº ï³äòðèìóâàòè ñòàá³ëüíó ðîáîòó ìîá³ëüíîãî çàñòîñóíêó íàâ³òü çà â³äñóòíîñò³ ïîâíîö³ííîãî API ç áîêó óí³âåðñèòåòñüêî¿ ñèñòåìè.
Àðõ³òåêòóðí³ ð³øåííÿ
Àðõ³òåêòóðà ìîá³ëüíîãî çàñòîñóíêó ïîáóäîâàíà â³äïîâ³äíî äî ïðèíöèï³â Clean Architecture ³ç ïîä³ëîì íà òðè îñíîâí³ øàðè: Data layer; Domain layer; UI layer. Òàêèé ï³äõ³ä äîçâîëèâ çàáåçïå÷èòè ³çîëÿö³þ á³çíåñ-ëîã³êè â³ä äåòàëåé ðåàë³çàö³¿ äæåðåë äàíèõ ³ ³íòåðôåéñíèõ êîìïîíåíò³â [2].
Øàð Data â³äïîâ³äຠçà îòðèìàííÿ, òðàíñôîðìàö³þ òà êåøóâàííÿ ³íôîðìàö³¿. Äëÿ âçàºìî䳿 ç JSON API ³íòåãðîâàíî Retrofit ó ïîºäíàíí³ ç Kotlin Serialization, ùî çàáåçïå÷óº òèïîáåçïå÷íó îáðîáêó ìåðåæåâèõ â³äïîâ³äåé òà ñïðîùóº ï³äòðèìêó êîäó.
Äëÿ ìîäóë³â, äå ³íôîðìàö³ÿ äîñòóïíà ëèøå ó âèãëÿä³ HTML-äîêóìåíò³â, ðåàë³çîâàíî îêðåìèé ìåõàí³çì ïàðñèíãó íà îñíîâ³ Jsoup. Íåçâàæàþ÷è íà ð³çí³ äæåðåëà îòðèìàííÿ äàíèõ, íà ð³âí³ Domain çàñòîñóíîê ïðàöþº ç óí³ô³êîâàíèìè ìîäåëÿìè, ùî çàáåçïå÷óº íåçàëåæí³ñòü á³çíåñ-ëîã³êè â³ä ñïîñîáó îòðèìàííÿ ³íôîðìàö³¿.
Âçàºìîä³ÿ ì³æ ³íòåðôåéñîì ³ ëîã³êîþ çàñòîñóíêó ðåàë³çîâàíà çà äîïîìîãîþ ïàòåðíà MVVM (Model–View–ViewModel). Âèêîðèñòàííÿ ViewModel ³ ìåõàí³çì³â State Management äîçâîëÿº ðåàë³çóâàòè ðåàêòèâíó ìîäåëü îíîâëåííÿ UI, äå ³íòåðôåéñ àâòîìàòè÷íî ðåàãóº íà çì³íè ñòàíó äàíèõ.
Äëÿ âèêîíàííÿ àñèíõðîííèõ îïåðàö³é âèêîðèñòàíî Kotlin Coroutines, ùî çàáåçïå÷óº åôåêòèâíó ðîáîòó ç ìåðåæåâèìè çàïèòàìè, ïàðñèíãîì äàíèõ ³ ôîíîâèìè ïðîöåñàìè áåç áëîêóâàííÿ ãîëîâíîãî ïîòîêó [4].
Êåðóâàííÿ çàëåæíîñòÿìè ðåàë³çîâàíî çà äîïîìîãîþ Dagger Hilt. Âèêîðèñòàííÿ Dependency Injection äîçâîëèëî çìåíøèòè çâ’ÿçí³ñòü ì³æ ìîäóëÿìè, ï³äâèùèòè òåñòîâàí³ñòü ñèñòåìè òà ñïðîñòèòè ïîäàëüøå ìàñøòàáóâàííÿ ïðîºêòó.
Ôóíêö³îíàëüí³ ìîæëèâîñò³ ìîá³ëüíîãî çàñòîñóíêó
Ôóíêö³îíàëüí³ñòü ìîá³ëüíîãî çàñòîñóíêó îð³ºíòîâàíà íà çàáåçïå÷åííÿ øâèäêîãî òà çðó÷íîãî äîñòóïó ñòóäåíò³â äî êëþ÷îâèõ àêàäåì³÷íèõ ñåðâ³ñ³â óí³âåðñèòåòñüêî¿ ñèñòåìè Timetable. Îäí³ºþ ç îñíîâíèõ ïåðåâàã íàòèâíîãî ï³äõîäó ñòàëî âèêîðèñòàííÿ ñèñòåìíèõ ìîæëèâîñòåé Android, ùî äîçâîëèëî ðåàë³çóâàòè ôóíêö³îíàë, íåäîñòóïíèé àáî ñóòòºâî îáìåæåíèé ó áðàóçåðíèõ ð³øåííÿõ.
Àâòîíîìíèé ðåæèì ðîáîòè. Äëÿ çàáåçïå÷åííÿ áåçïåðåðâíîãî äîñòóïó äî ³íôîðìàö³¿ ðåàë³çîâàíî ñòðàòåã³þ «offline-first». Çàñòîñóíîê êåøóº ðîçêëàä çàíÿòü òà ³íø³ êðèòè÷íî âàæëèâ³ äàí³ çà äîïîìîãîþ Jetpack DataStore, ùî äîçâîëÿº êîðèñòóâà÷åâ³ ïðàöþâàòè ³ç ñèñòåìîþ íàâ³òü çà â³äñóòíîñò³ ³íòåðíåò-ç’ºäíàííÿ.
Òàêèé ï³äõ³ä º îñîáëèâî àêòóàëüíèì â óìîâàõ íåñòàá³ëüíîãî ìåðåæåâîãî ïîêðèòòÿ àáî îáìåæåíîãî äîñòóïó äî ìîá³ëüíîãî ³íòåðíåòó.
Ñèñòåìà íàãàäóâàíü ³ ñïîâ³ùåíü. Äëÿ ðåàë³çàö³¿ ìåõàí³çìó íàãàäóâàíü ïðî çàíÿòòÿ é ³ñïèòè âèêîðèñòàíî êîìá³íàö³þ AlarmManager ³ WorkManager.
AlarmManager çàáåçïå÷óº òî÷íå âèêîíàííÿ çàäà÷ ó âèçíà÷åíèé ÷àñ, òîä³ ÿê WorkManager â³äïîâ³äຠçà íàä³éíå âèêîíàííÿ ôîíîâèõ ïðîöåñ³â íàâ³òü ï³ñëÿ ïåðåçàâàíòàæåííÿ ïðèñòðîþ àáî â óìîâàõ åíåðãîçáåðåæåííÿ.
Òàêèé ï³äõ³ä äîçâîëèâ äîñÿãòè áàëàíñó ì³æ òî÷í³ñòþ ñïîâ³ùåíü ³ ñòàá³ëüí³ñòþ ðîáîòè çàñòîñóíêó.
Êîíòåêñòíî-îð³ºíòîâàíèé ³íòåðôåé. ²íòåðôåéñ çàñòîñóíêó ïîáóäîâàíèé â³äïîâ³äíî äî ïðèíöèï³â Material 3 ³ç ôîêóñîì íà ì³í³ì³çàö³þ êîãí³òèâíîãî íàâàíòàæåííÿ êîðèñòóâà÷à. Íà â³äì³íó â³ä âåáïîðòàëó, äå âçàºìîä³ÿ ÷àñòî ïîòðåáóº áàãàòîåòàïíî¿ íàâ³ãàö³¿ òà ìàñøòàáóâàííÿ ñòîð³íîê, ìîá³ëüíèé çàñòîñóíîê çàáåçïå÷óº äîñòóï äî íåîáõ³äíî¿ ³íôîðìàö³¿ â äåê³ëüêà ä³é.
Êð³ì òîãî, íàòèâíèé ï³äõ³ä çàáåçïå÷óº êðàùó åíåðãîåôåêòèâí³ñòü ³ îïòèì³çîâàíå âèêîðèñòàííÿ îïåðàòèâíî¿ ïàì’ÿò³ ïîð³âíÿíî ç áðàóçåðíèìè ð³øåííÿìè.
ϳäòðèìêà çàñòàð³ëèõ ïðèñòðî¿â òà öèôðîâà ³íêëþçèâí³ñòü
Âàæëèâèì àñïåêòîì ðîçðîáêè ñòàëî çàáåçïå÷åííÿ ìàêñèìàëüíî¿ äîñòóïíîñò³ ìîá³ëüíîãî çàñòîñóíêó äëÿ øèðîêîãî êîëà êîðèñòóâà÷³â.
Ó ÿêîñò³ ì³í³ìàëüíî¿ ï³äòðèìóâàíî¿ âåðñ³¿ îïåðàö³éíî¿ ñèñòåìè áóëî îáðàíî Android 7.0 (API 24). Òàêèé âèá³ð äîçâîëÿº çàáåçïå÷èòè ñóì³ñí³ñòü ³ç á³ëüø³ñòþ àêòèâíèõ Android-ïðèñòðî¿â ³ ì³í³ì³çóâàòè ðèçèêè âèíèêíåííÿ öèôðîâîãî ðîçðèâó ñåðåä ñòóäåíòñüêî¿ àóäèòîð³¿.
Çã³äíî ç àêòóàëüíîþ ñòàòèñòèêîþ ïîøèðåííÿ âåðñ³é Android, ï³äòðèìêà API 24 çàáåçïå÷óº îõîïëåííÿ ïîíàä 99% àêòèâíèõ ïðèñòðî¿â [6]. Öå º âàæëèâèì ôàêòîðîì ó êîíòåêñò³ çàáåçïå÷åííÿ ð³âíîãî äîñòóïó äî öèôðîâèõ îñâ³òí³õ ñåðâ³ñ³â. Âîäíî÷àñ ï³äòðèìêà ñòàð³øèõ ïðèñòðî¿â ñòâîðþº äîäàòêîâ³ ³íæåíåðí³ âèêëèêè, ïîâ’ÿçàí³ ç îïòèì³çàö³ºþ ïðîäóêòèâíîñò³ é åôåêòèâíèì âèêîðèñòàííÿì ðåñóðñ³â.
Äëÿ çàáåçïå÷åííÿ ñòàá³ëüíî¿ ðîáîòè çàñòîñóíêó íà ïðèñòðîÿõ ³ç îáìåæåíèìè àïàðàòíèìè ìîæëèâîñòÿìè áóëî îïòèì³çîâàíî ìåõàí³çìè ðåêîìïîçèö³¿ Jetpack Compose, ì³í³ì³çîâàíî íàâàíòàæåííÿ íà ãðàô³÷íèé ïðîöåñîð ³ ðåàë³çîâàíî ³çîëÿö³þ á³çíåñ-ëîã³êè â³ä UI-êîìïîíåíò³â.
Òàêèé ï³äõ³ä äîçâîëèâ çàáåçïå÷èòè ñòàá³ëüíó ðîáîòó çàñòîñóíêó íàâ³òü íà ìîá³ëüíèõ ïðèñòðîÿõ ïîïåðåäí³õ ïîêîë³íü.
Âèñíîâêè
Ó ðåçóëüòàò³ âèêîíàíî¿ ðîáîòè áóëî ðîçðîáëåíî íàòèâíèé ìîá³ëüíèé çàñòîñóíîê äëÿ ÎÑ Android, ³íòåãðîâàíèé ç óí³âåðñèòåòñüêîþ ñèñòåìîþ Timetable SNU.
Çàïðîïîíîâàíå ð³øåííÿ çàáåçïå÷óº ìîäåðí³çàö³þ âçàºìî䳿 ñòóäåíò³â ³ç ³íôîðìàö³éíî-îñâ³òí³ì ñåðåäîâèùåì óí³âåðñèòåòó øëÿõîì ï³äâèùåííÿ ìîá³ëüíîñò³, øâèäêî䳿 òà äîñòóïíîñò³ àêàäåì³÷íî¿ ³íôîðìàö³¿.
Âèêîðèñòàííÿ ñó÷àñíîãî ñòåêó òåõíîëîã³é (Kotlin, Jetpack Compose, Material 3), àðõ³òåêòóðíèõ ï³äõîä³â Clean Architecture òà MVVM, à òàêîæ ã³áðèäíîãî ìåõàí³çìó îòðèìàííÿ äàíèõ äîçâîëèëî ñòâîðèòè ìàñøòàáîâàíó òà ï³äòðèìóâàíó ñèñòåìó, àäàïòîâàíó äî ñïåöèô³êè óí³âåðñèòåòñüêî¿ ïëàòôîðìè.
Îñîáëèâó óâàãó ïðèä³ëåíî ïèòàííÿì öèôðîâî¿ ³íêëþçèâíîñò³, àâòîíîìíîñò³ ðîáîòè é îïòèì³çàö³¿ ïðîäóêòèâíîñò³ íà çàñòàð³ëèõ ìîá³ëüíèõ ïðèñòðîÿõ.
Ðîçðîáëåíèé çàñòîñóíîê äåìîíñòðóº ìîæëèâ³ñòü åôåêòèâíî¿ ³íòåãðàö³¿ ñó÷àñíèõ ìîá³ëüíèõ òåõíîëîã³é ³ç ³ñíóþ÷èìè óí³âåðñèòåòñüêèìè ³íôîðìàö³éíèìè ñèñòåìàìè òà ìîæå ñëóãóâàòè îñíîâîþ äëÿ ïîäàëüøîãî ðîçâèòêó öèôðîâî¿ åêîñèñòåìè çàêëàäó âèùî¿ îñâ³òè.
Ñïèñîê ë³òåðàòóðè
1. Ðàòîâ Ä. Â., Ìàð÷åíêî Ä. Ì., Çàõîæàé Î.². ²íòåðàêòèâíèé web çàñòîñóíîê öèôðîâîãî óí³âåðñèòåòó // ³ñíèê Cõ³äíîóêðà¿íñüêîãî íàö³îíàëüíîãî óí³âåðñèòåòó ³ìåí³ Âîëîäèìèðà Äàëÿ ¹3(301) 2026. [Åëåêòðîííèé ðåñóðñ] URL: https://journals.snu.edu.ua/index.php/VisnikSNU/article/view/1333/1285 (äàòà çâåðíåííÿ 13.05.2026)
2. Android Developers. Guide to app architecture. Google Developers. [Åëåêòðîííèé ðåñóðñ] URL: https://developer.android.com/topic/architecture (äàòà çâåðíåííÿ: 13.05.2026)
3. Jetpack Compose Open Source Project. Mental models of Compose. Android Documentation. [Åëåêòðîííèé ðåñóðñ] URL: https://developer.android.com/jetpack/compose/mental-model (äàòà çâåðíåííÿ: 13.05.2026)
4. Kotlin Documentation. Coroutines guide. Kotlin Foundation. [Åëåêòðîííèé ðåñóðñ] URL: https://kotlinlang.org/docs/coroutines-overview.html (äàòà çâåðíåííÿ: 13.05.2026)
5. GNU Project. GNU General Public License v3.0. Free Software Foundation. [Åëåêòðîííèé ðåñóðñ] URL: https://www.gnu.org/licenses/gpl-3.0.html (äàòà çâåðíåííÿ: 13.05.2026)
6. Android Studio. Distribution dashboard: Mobile version market share. Android Developers. [Åëåêòðîííèé ðåñóðñ] URL: https://developer.android.com/about/dashboards (äàòà çâåðíåííÿ: 13.05.2026)
7. JetiTable, An experimental UNOFFICIAL app for SNU TimeTable schedule system. Built on Jetpack Compose with material UI. GitHub [Åëåêòðîííèé ðåñóðñ] URL: https://github.com/thisdialynx/JetiTable (äàòà çâåðíåííÿ 13.05.2026)
8. Jsoup: Java HTML parser, built for HTML editing, cleaning, scraping, and XSS safety. [Åëåêòðîííèé ðåñóðñ] URL: https://jsoup.org/ (äàòà çâåðíåííÿ 13.05.2026)