0% found this document useful (0 votes)
18 views

10 Mobile Networks

The document discusses programming for mobile networks including languages like Java, Kotlin, and Swift for native development and React Native and Flutter for cross-platform development. It also covers networking protocols like HTTP and WebSocket as well as data formats like JSON and XML. The document discusses security considerations like SSL/TLS and authentication and authorization. It concludes with best practices for mobile network programming.

Uploaded by

S t a r D u s t
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

10 Mobile Networks

The document discusses programming for mobile networks including languages like Java, Kotlin, and Swift for native development and React Native and Flutter for cross-platform development. It also covers networking protocols like HTTP and WebSocket as well as data formats like JSON and XML. The document discusses security considerations like SSL/TLS and authentication and authorization. It concludes with best practices for mobile network programming.

Uploaded by

S t a r D u s t
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

SENG42283 – Mobile

Networks
Programming for Mobile
Networks

Sadeepa Sepala
[email protected]
Programming for Mobile Networks

■ Introduction to “Mobile Networks Programming”

- Is the art and science of developing software and


applications specifically tailored for mobile devices,
taking advantage of the inherent capabilities and the
features provided by mobile networks.

- Mix of mobile app development, network/web


technologies and mobile device/network specific
features
Languages for Mobile Network Programming

■ Native Languages
- Android :
Java – Java is an official language of Android development
and is supported by Android Studio.
Kotlin – Kotlin is another official Android language. It is
interoperable with the Java programming language and the
existing Android runtime.
- iOS :
Swift – Is the Apple’s preferred language, a compiled
language faster than interpreted languages and supported bu
Xcode.
Languages for Mobile Network Programming

■ Cross Platform Frameworks

- React Native : Open-source Framework developed by


Facebook, uses “React” a popular JavaScript library, UI for
both Android and iOS.
Incorporates native components, ensures that the final app
delivers a native-like user experience.
- Flutter : Open-source UI development toolkit created by
Google. Widget based architecture and uses “Dart” as
programming language to build applications for mobile web
and desktop from single code base.
Languages for Mobile Network Programming

■ Cross Platform Frameworks

- Xamarin : A cross platform mobile app development


framework acquired by Microsoft. Xamarin allows
developers to build native mobile applications using c# and
.NET, sharing significant portion of the codebase across iOS
, Android and Windows.
Networking in Mobile Applications

■ Communication Protocols

- HTTP/HTTPS : Basic way of transferring data over the


web. Unsecure HTTP uses port 80 normally, HTTPS secures
the communication channel using SSL or TLS and uses port
443
- WebSocket : Protocol supporting real time, bidirectional
communication, crucial for applications requiring instant
updates and interactions.
Networking in Mobile Applications

■ Data Exchange Formats

- JSON (JavaScript Object Notation) : Light weight data


interchange format that is human readable. It uses key- value
paires and data structures like arrays and objects. Commonly
used for data interchange between server and web
application (configuration files, data storage, etc..)
{
“name” : “John Doe”,
“age”: 30,
“city”: “New York”,
“isStudent”: false,
“hobbies”: [“Reading”, “Coding”, “Travelling”]
}
Networking in Mobile Applications

■ Data Exchange Formats

- XML(eXtendible Markup Language) : A markup


language that defines the rules for encoding documents in a
format that is both human –readable and machine readable.
Commonly used for representing structured data.
<person>
<name> John Doe </name>
<age> 30 </age>
<city> New York </city>
<isStudent> false </isStudent>
<hobbies>
<hobby> Reading </hobby>
<hobby> Coding </hobby>
<hobby> Travelling </hobby>
<\hobbies>
</person>
Networking in Mobile Applications

■ Data Exchange Formats

- XML(eXtendible Markup Language) : A markup


language that defines the rules for encoding documents in a
format that is both human –readable and machine readable.
Commonly used for representing structured data.
<person>
<name> John Doe </name>
<age> 30 </age>
<city> New York </city>
<isStudent> false </isStudent>
<hobbies>
<hobby> Reading </hobby>
<hobby> Coding </hobby>
<hobby> Travelling </hobby>
<\hobbies>
</person>
Security Considerations

■ SSL (Secure Socket Layer)


■ TLS (Transport Layer Security)

- These two cryptographic protocols provide identity


assurance and information encryption. The SSL and TLS
security certificates encrypt data to:
Ensure a secure connection
Protect sensitive data
Prevent third parties from reading or changing data
- SSL is deprecated due to security vulnerabilities identified
and successor TLS 1.3 is widely used.
- TLS uses same certificate infrastructure as SSL
Security Considerations

■ Authentication

- Verify the identity of the users and devices


accessing mobile applications.

■ Authorization

- Determines the level of access granted to authenticated


users ensuring secure and controlled interactions.
Best Practices in Mobile Network Programming

■ Optimize Network Requests

■ Use Asynchronous Operations

■ Handle Connectivity Changes

■ Implement Secure Communications

■ Optimize Data Transmissions

■ Implement Retrying Mechanisms


Best Practices in Mobile Network Programming

■ Prioritize User Experience

■ Ensure Scalability

■ Handle background operations

■ Monitor and Analyze performance

■ Update Libraries and dependencies

■ Secure User Authentication


Best Practices in Mobile Network Programming

■ Follow Platform Guidelines

■ Test Across Networks

■ Provide Offline Support


Thank You !

You might also like