Dezvoltarea Aplicațiilor Mobile

TIFS

Dezvoltarea Aplicațiilor Mobile

Se încarcă ...
Despre acest curs:

App Development

In-app development, the most fundamental distinction is that between web apps and mobile apps. Web apps require an active internet connection to run, whereas mobile apps work offline. Web apps on smartphones are simply mobile-optimized web pages, while mobile apps need to be downloaded from a phone’s app store.

Mobile apps are superior in terms of efficiency and speed but do require users to manually or automatically download updates rather than updating themselves, as web apps do. Mobile app development tends to be more resource-intensive than web app creation, but mobile apps are faster and usually functionally outperform their web counterparts. For example, mobile apps often use phone features like cameras that web apps usually don’t have access to.

You may be surprised to learn that there are several kinds of mobile apps, so we’ll proceed by distinguishing between the two major types: native apps and cross-platform apps.

Native Apps vs. Cross-Platform Apps

Native applications are those built with a given operating system (OS) in mind, using specific programming languages and Integrated Development Environments (IDEs). For example, a native application for iOS should be written in the language that iOS expects, using the APIs that iOS exposes. If developers use Objective-C and Swift for an iOS app, or Java for an Android app, along with the appropriate APIs, such applications are “native” insofar as the underlying system’s capabilities are used as expected by the system. Native apps also use hardware memory, camera, sensors, and other programs installed on a device through the APIs exposed by the underlying system. 

By contrast, cross-platform frameworks intend to provide universal solutions supported by several mobile OSs at once. They use a common core with per-platform customizations to fit an application to multiple platforms, so there’s no need to create unique elements for each OS.

What are the advantages and challenges of each mobile app approach? 

Native apps offer higher performance, greater energy efficiency, fewer limitations in architecture and functionality, and an interface fully compliant with the given platform’s guidelines. However, maintaining them comes at a high price: Mobile apps sometimes get multiple updates each month, and keeping them up-to-date can consume developer time that could otherwise be spent on new functionality. Also, a native app’s audience is limited to users of one particular OS, unless its creators exert considerable effort in developing the same app for multiple systems. 

Conversely, cross-platform apps facilitate code-sharing, as developers don’t have to create one app for iOS and a separate one for Android, but are often able to share 80% or more of their code across platforms. Less coding effort required allows the app to be maintained on multiple platforms, even with a small team.

However, It’s difficult to tailor a single solution to various operating systems. A cross-platform solution is designated as such precisely because its framework allows you to use multi-platform functionality. A cross-platform application’s interface is usually universal, leading to lags and complexities when implementing specific elements of each OS, as features unique to a particular platform typically won’t be supported. While a framework might make an app look and feel like its intended platform, without any additional work from the developer, design choices are usually limited.

Now let’s take a closer look at the toolchains required for both app types, and further distinguish between even more variations of mobile apps within the cross-platform ecosystem.

Native Apps

In native app development, familiarity with your chosen operating system’s IDE and project structure is imperative. Fortunately, the iOS and Android operating systems are well-documented and provide their own development tools, interface elements, and software development kits (SDKs), which developers can use to build native mobile apps.

Apple devices run on the iOS native operating system and are built using either Objective-C or Swift along with the Xcode IDE. Despite being two separate platforms, iOS and macOS share similarities, so if you want to run your mobile app on an Apple desktop, you can incorporate modern iOS features into your app. This will simplify the transition to macOS (since up-to-date features automatically map to appropriate macOS behaviors).

By contrast, the Android development toolchain usually involves Android Studio or the Eclipse IDE, though you may also use other IDEs. Android Studio is the official IDE for Android app development, and the main program for writing code and assembling apps from various packages and libraries. Both Android Studio and the Android SDK are free to download and come with software libraries and sample code. While Android apps are built with Java, you could build an Android app in other languages that run on the Java Virtual Machine, such as Kotlin.

Hybrid Cross-Platform Apps

There are two different types of cross-platform apps: hybrid apps and native cross-platform apps. Hybrid apps use only HTML5, CSS, and JavaScript to create parts of an app’s graphical user interface (GUI). Sound like a web app? Whereas both hybrid mobile apps and web apps render HTML, hybrid apps use app-embedded browsers like WebView to do so.

Some hybrid apps even interact with a smartphone’s hardware, although the functionality can be limited. Apache Cordova, Ionic, and Flutter are among the most promising hybrid app development frameworks currently on the market.

Native Cross-Platform Apps

Native cross-platform apps, on the other hand, are not built with HTML/CSS/JS frameworks — a developer would instead create a unified API running on top of a native SDK. By making use of a native IDE coupled with this API, a developer can build iOS and Android apps that share the same codebase while providing a near-native experience. Native cross-platform applications are primarily built with Xamarin, React Native, and Kotlin Multiplatform.

This may sound confusing, so let’s look at how one such mobile UI framework works. We’ll take the case of Xamarin. 

Built with C# and .Net, Xamarin allows developers to create cross-platform applications with shared interfaces using Xamarin.Forms. Xamarin.iOS and Xamarin.Android are particularly useful for creating iOS and Android interfaces. In addition to providing libraries that grant native and third-party API access, Xamarin gives cross-platform apps access to smartphone hardware and functionality previously only found in native apps. By combining near-native performance with code reusability, native cross-platform frameworks narrow the performance gap between native and hybrid apps with the potential for more cost-effective development.

veverita

Tatiana Veverița

Dr., lector universitar, facultatea Fizică, Matematică și Tehnologii Informaționale

Dr., lector universitar, facultatea Fizică, Matematică și Tehnologii Informaționale a Universității de Stat din Tiraspol (cu sediul la Chișinău)

Tatiana Veverița își desfășoară activitatea la catedra Informatică și Tehnologii Informaționale a Universității de Stat din Tiraspol. Este titulară a cursurilor de „Tehnologii Informaționale”,  „Programarea pentru device-uri mobile”, „Structuri de date și algoritmi”, „Algoritmi genetici”,  etc.

Este implicată în diverse proiecte naționale și internaționale precum: „Competențe digitale pentru angajare în economia modernă˝, Metodologia implementării TIC în procesul de studiere a științelor reale în sistemul de educație din Republica Moldova din perspectiva inter/trans disciplinarității (concept STEAM), „Reforma Învățământului în Moldova” implementat de Ministerul Educației, Culturii și Cercetării.

A fost implicată în elaborarea resurselor digitale interactive la modulul Educația digitală, pentru elevii claselor I și II, precum și învățătorilor, autor a suportului electronic Educația digitală, clasa a III-a, a mai multor articole științifice pe tematica TIC în Educație. Promovează intens capacitatea de a valorifica oportunitățile pe care le oferă societatea informațională, cum ar fi utilizarea eficientă a noilor tehnologii și medii de învățare, abordări interdisciplinare în instruire, integrarea în comunitățile profesionale internaționale, renunțarea la zona de confort personal, autoinstruirea continuă.
A elaborat cursuri de formare profesională continuă pentru profesori: Tehnologii digitale pentru predare; Competențe digitale pentru profesori; Competențe de creare a RED; Informatică și Tehnologii Web etc.
 

braicov

Andrei Braicov

Dr., conferențiar universitar, facultatea Fizică, Matematică și Tehnologii Informaționale

Dr., conferențiar universitar, facultatea Fizică, Matematică și Tehnologii Informaționale a Universității de Stat din Tiraspol (cu sediul la Chișinău)

Andrei Braicov predă la Universitatea de Stat din Tiraspol cursurile „Proiectarea și programarea aplicațiilor Web”, „Structuri de date și algoritmi”, „Programarea vizuală” etc.

Este cercetător științific în cadrul Proiectului „Metodologia implementării TIC în procesul de studiere a științelor reale în sistemul de educație din Republica Moldova din perspectiva inter- trans-disciplinarității (conceptul STEAM)”

A condus mai multe proiecte naționale și internaționale, printre care și proiectul Erasmus + TEACHME (Creating Moldovan E-network for Promoting e-teaching in the Continuing Professional Education).

Este autor al diferitor manuale, ghiduri, curricule, culegeri de probleme, de matematică, informatică, alfabetizare digitală.
A elaborat cursuri de formare profesională continuă pentru profesori: Tehnologii digitale pentru predare; Competențe digitale pentru profesori;

Competențe de creare a RED; Informatică și Tehnologii Web etc.
 

Dezvoltarea Aplicațiilor Mobile Lectia 0
Progres0
  • Mobile APPS Lectie Video 0
  • Mobile APPS Lectie Text 0
Dezvoltarea Aplicațiilor Mobile Lectia 1
Progres0
  • Mobile APPS Lectie Video 1
  • Mobile APPS Lectie Text 1
Dezvoltarea Aplicațiilor Mobile Test de Evaluare 1
Progres100
  • Mobile APPS Test de Evaluare 1
Dezvoltarea Aplicațiilor Mobile Lectia 2
Progres0
  • Mobile APPS Lectie Video 2
  • Mobile APPS Lectie Text 2
  • Mobile APPS Sarcina Practica 2
Dezvoltarea Aplicațiilor Mobile Lectia 3
Progres0
  • Mobile APPS Lectie Video 3
  • Mobile APPS Lectie Text 3
  • Mobile APPS Sarcina Practica 3
Dezvoltarea Aplicațiilor Mobile Test de Evaluare 3
Progres85
  • Mobile APPS Test de Evaluare 3
Dezvoltarea Aplicațiilor Mobile Lectia 4
Progres0
  • Mobile APPS Lectie Video 4
  • Mobile APPS Lectie Text 4
  • Mobile APPS Sarcina Practica 4
Dezvoltarea Aplicațiilor Mobile Test de Evaluare 4
Progres100
  • Mobile APPS Test de Evaluare 4
Dezvoltarea Aplicațiilor Mobile Lectia 5
Progres0
  • Mobile APPS Lectie Video 5
  • Mobile APPS Lectie Text 5
  • Mobile APPS Sarcina Practica 5
Dezvoltarea Aplicațiilor Mobile Test de Evaluare 5
Progres100
  • Mobile APPS Test de Evaluare 5
Dezvoltarea Aplicațiilor Mobile Lectia 6
Progres0
  • Mobile APPS Lectie Video 6
  • Mobile APPS Lectie Text 6
  • Mobile APPS Sarcina Practica 6
Dezvoltarea Aplicațiilor Mobile Test de Evaluare 6
Progres80
  • Mobile APPS Test de Evaluare 6
Dezvoltarea Aplicațiilor Mobile Lectia 7
Progres0
  • Mobile APPS Lectie Video 7
  • Mobile APPS Lectie Text 7
  • Mobile APPS Sarcina Practica 7
Dezvoltarea Aplicațiilor Mobile Lectia 8
Progres0
  • Mobile APPS Lectie Video 8
  • Mobile APPS Lectie Text 8
  • Mobile APPS Sarcina Practica 8
Dezvoltarea Aplicațiilor Mobile Test de Evaluare 8
Progres100
  • Mobile APPS Test de Evaluare Lectiile 7-8
Dezvoltarea Aplicațiilor Mobile Lectia 9
Progres0
  • Mobile APPS Lectie Video 9
  • Mobile APPS Lectie Text 9
  • Mobile APPS Sarcina Practica 9
Dezvoltarea Aplicațiilor Mobile Lectia 10
Progres0
  • Mobile APPS Lectie Video 10
  • Mobile APPS Lectie Text 10
  • Mobile APPS Sarcina Practica 10
Dezvoltarea Aplicațiilor Mobile Lectia 11
Progres0
  • Mobile APPS Lectie Video 11
  • Mobile APPS Lectie Text 11
  • Mobile APPS Sarcina Practica 11
Dezvoltarea Aplicațiilor Mobile Test de Evaluare11
Progres70
  • Mobile APPS Test de Evaluare Lectii 10-11
Dezvoltarea Aplicațiilor Mobile Lectia 12
Progres0
  • Mobile APPS Lectie Video 12
  • Mobile APPS Lectie Text 12
  • Mobile APPS Sarcina Practica 12
Dezvoltarea Aplicațiilor Mobile Test de Evaluare12
Progres100
  • Mobile APPS Test de Evaluare 12
Dezvoltarea Aplicațiilor Mobile Lectia 13
Progres0
  • Mobile APPS Lectie Video 13
  • Mobile APPS Lectie Text 13
  • Mobile APPS Sarcina Practica 13
Dezvoltarea Aplicațiilor Mobile Test de Evaluare13
Progres80
  • Mobile APPS Test de Evaluare 13
Dezvoltarea Aplicațiilor Mobile Lectia 14
Progres0
  • Mobile APPS Lectie Video 14
  • Mobile APPS Lectie Text 14
  • Mobile APPS Sarcina Practica 14
Dezvoltarea Aplicațiilor Mobile Test de Evaluare14
Progres90
  • Mobile APPS Test de Evaluare 14
Dezvoltarea Aplicațiilor Mobile Lectia 15
Progres0
  • Mobile APPS Lectie Video 15
  • Mobile APPS Lectie Text 15
  • Mobile APPS Sarcina Practica 15
Dezvoltarea Aplicațiilor Mobile Test de Evaluare15
Progres60
  • Mobile APPS Test de Evaluare 15
Dezvoltarea Aplicațiilor Mobile Lectia 16
Progres0
  • Mobile APPS Lectie Video 16
  • Mobile APPS Lectie Text 16
  • Mobile APPS Sarcina Practica 16
Dezvoltarea Aplicațiilor Mobile Test de Evaluare16
Progres60
  • Mobile APPS Test de Evaluare 16
Dezvoltarea Aplicațiilor Mobile Lectia 17
Progres0
  • Mobile APPS Lectie Video 17
  • Mobile APPS Lectie Text 17
  • Mobile APPS Sarcina Practica 17
Dezvoltarea Aplicațiilor Mobile Test de Evaluare17
Progres30
  • Mobile APPS Test de Evaluare 17
Dezvoltarea Aplicațiilor Mobile Lectia 18
Progres0
  • Mobile APPS Lectia 18
Dezvoltarea Aplicațiilor Mobile Test de Evaluare18
Progres0
  • lectie118
Dezvoltarea Aplicațiilor Mobile Lectia 19
Progres0
  • Mobile APPS Lectia 19
Dezvoltarea Aplicațiilor Mobile Test de evaluare19
Progres0
  • lectie199
Dezvoltarea Aplicațiilor Mobile Lectia 20
Progres0
  • Mobile APPS Lectia 20
Dezvoltarea Aplicațiilor Mobile Test de evaluare20
Progres0
  • lectie200
Dezvoltarea Aplicațiilor Mobile Lectia 21
Progres0
  • lectie21
Dezvoltarea Aplicațiilor Mobile Test de evaluare21
Progres0
  • 21test
Dezvoltarea Aplicațiilor Mobile Lectia 22
Progres0
  • Mobile APPS Lectia 22
Dezvoltarea Aplicațiilor Mobile Test de evaluare22
Progres0
  • 22
Dezvoltarea Aplicațiilor Mobile Lectia 23
Progres0
  • Mobile APPS Lectia 23
Dezvoltarea Aplicațiilor Mobile Test de evaluare23
Progres0
  • 233
Dezvoltarea Aplicațiilor Mobile Lectia 24
Progres0
  • Mobile APPS Lectia 24
Dezvoltarea Aplicațiilor Mobile Test de evaluare24
Progres0
  • 244
Dezvoltarea Aplicațiilor Mobile Lectia 25
Progres0
  • Mobile APPS Lectia 25
Dezvoltarea Aplicațiilor Mobile Test de evaluare25
Progres0
  • 255
Dezvoltarea Aplicațiilor Mobile Lectia 26
Progres0
  • Mobile APPS Lectia 26
Dezvoltarea Aplicațiilor Mobile Test de evaluare26
Progres0
  • 266
Dezvoltarea Aplicațiilor Mobile Lectia 27
Progres0
  • Mobile APPS Lectia 27
Dezvoltarea Aplicațiilor Mobile Test de evaluare27
Progres0
  • 277
Dezvoltarea Aplicațiilor Mobile Lectia 28
Progres0
  • Mobile APPS Lectia 28
Dezvoltarea Aplicațiilor Mobile Test de evaluare28
Progres0
  • 288
Dezvoltarea Aplicațiilor Mobile Lectia 29
Progres0
  • Mobile APPS Lectia 29
Mobile APPS Test de evaluare 29
Progres0
  • 299
Dezvoltarea Aplicațiilor Mobile Lectia 30
Progres0
  • Mobile Apps Lectia 30
Dezvoltarea Aplicațiilor Mobile Test de evaluare30
Progres0
  • 300
Dezvoltarea Aplicațiilor Mobile Lectia 31
Progres0
  • Mobile Apps Lectia 31
Dezvoltarea Aplicațiilor Mobile Test de evaluare31
Progres0
  • 311
Dezvoltarea Aplicațiilor Mobile Lectia 32
Progres0
  • Mobile Apps Lectia 32
Dezvoltarea Aplicațiilor Mobile Test de evaluare32
Progres0
  • 322
Dezvoltarea Aplicațiilor Mobile Lectia 33
Progres0
  • Mobile Apps Lectia 33
Dezvoltarea Aplicațiilor Mobile Test de evaluare33
Progres0
  • 333
Dezvoltarea Aplicațiilor Mobile Lectia 34
Progres0
  • Mobile Apps Lectia 34
Dezvoltarea Aplicațiilor Mobile Test de evaluare34
Progres0
  • 344