Student Project (2-3 participants)
WebAssembly (wasm) is a new portable, size- and load-time-efficient format suitable for compilation to the web. It is already supported in major Browsers like Chrome, Firefox and Safari and currently being designed as an open standard by the W3C WebAssembly Community Group that includes representatives from all major browsers. The main goal of WebAssembly is to run code in the browser at native speed by taking advantage of common hardware capabilities available on a wide range of platforms.
- Evaluate toolchain for producing WebAssembly code
- C/C++ (basic skills)
Television in Web Apps with DVB-T2
Student Project (at least 2 participants)
Everything is the Web. Help bring traditional television to the world of web apps.
The task involves low level programmig in C/C++ to. You will be working on a Node.js addon that bridges der Linux DVB kernel API to make the functionality available from a Node.js context. This work has been started by a prior student project, your task is to finish and polish up the current application.
- Linux (must)
Related FAME Projects:
Student Project (4 participants), Master Thesis
The Cloud Browser differs from traditional browsers in that web pages are rendered in the cloud and only the UI output of the web page is streamed to the client using appropriate video streaming technologies. The Client is in general a simple device that is only capable to decode and play a video stream. It doesn't have the capabilities to run a Browser, render web pages or perform computing intensive operations. It only offers capability to interact with the user e.g. using Remote Control. All user interactions need to be sent to the cloud browser and triggered on the corresponding web page.
One potential use case of cloud browser is a Set-Top-Box that runs in the cloud. The operator provides low performance and cheap devices to costumers that connect to its cloud infrastructure. In this case, the operator doesn't need to supply new kind of devices if he wants to offer new services that requires new hardware or software capabilities. Using the Cloud Browser solution, he needs only to update the cloud browser software stack for all customers at once. Another use case is the rendering of 360° Video in the cloud instead of the local browser. The approach has two main advantages: (1) there is no need to stream the whole 360° video to the client, but only the view requested by the user and (2) there is no need to render the 360° video locally which requires expensive computing operations.
One important requirement for Cloud Browsers is the zero-latency streaming of the current view. The time between a user interaction and the receiving of the corresponding frames that show the effect of his interaction must not exceed a threshold of few milliseconds. The WebRTC technology could be one potential technology that fulfill this requirement.
- You will implement a Cloud Browser framework that includes the following components:
- Server that offers the Cloud Browser functionality and is capable to serve multiple users and sessions in parallel. The Server should also offer an API for receiving user inputs.
- Client that offers a player for video stream received from the cloud browser and is capable to open new sessions on the Cloud Browser using appropriate APIs. The Client needs also to intercept user inputs and send them to the server. The Client may be implemented on low capability devices
- Communication Technologies: WebRTC and/or WebSockets (Optional)
Related FAME Projects:
React-Native In-App Update
Student Project (1-2 participants)
React-native is a framework for developing mobile applications for iOS and Android by using web technologies and native platform code. To deliver hotfix updates as quick as possible is an important part in mobile development today. But also minor or major updates could benefit from in-app update approaches like updating the version of react-native, external modules or changing the splash screen. Currently different tools like codepush from Microsoft exists to achieve such a functionality.
- Evaluate limitations and benefits of existing tools for iOS and Android
- Develop a React-Native app with in-app update
- Evaluate you Implementation on iOS and Android with different updates scenarios (hotfix, minor, major)
- iOS, Android (extended)
Student Project (1-2 participants)
React-native is a framework for developing mobile applications for iOS and Android by using web technologies and native platform code. A fast delivery of notifications about app updates, status changes, reminders and other is an important part in mobile development today. By sending a trigger a messaging service will deliver all the notifications and handle the responses. One tool is firebase from Google which provides such a functionality.
- Evaluate limitations and benefits of existing tools like firebase for iOS and Android
- Develop a React-Native app with push-notifications
- Evaluate you Implementation on iOS and Android with different push Notifications (app-update, status change, reminder)
- XMPP (extended)
Apple News Format (ANF) Micro Service
Student Project (1-3 participants)
On iOS Apple offers its own News app. The app works by pulling in news stories from the web through various syndication feeds (Atom and RSS) or from news publishing partners through the JSON descriptive Apple News Format. Any news publisher can submit their content for inclusion in Apple News. In this project a ANF publishing micro service will be implemented. To add latency and fault tolerance to the service Hystrix can be optionally (depends on number of participants) used to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems.
The service itself should be developed using spring boot, a JAVA solution for creating stand-alone applications.
- Evaluate components and develop a modular software architecture that takes News Data from a real or Test CMS and submits them to the Apple News Format API.
- Trigger service if new data is available
- Convert News Data from a source format to the ANF JSON Format
- Push / Submit ANF JSON Data to the Apple News Format Service (maybe including update and delete of existing data)
- Implement suitable unit tests
- Integrate Hystrix
Optional skills (already used):
- Spring Boot
- ANF: https://developer.apple.com/news-publisher/
- Hystrix: https://github.com/Netflix/Hystrix
- Spring Boot: https://projects.spring.io/spring-boot/