1 of 11

Customization of NextCloud iOS AppTeam Member(s): Ana Ruiz Arboleya, Janet Cueto, Julio Padrón Bauta, and Schadrack Cineas�Product Owner(s): Masoud Sadjadi�Professor: Masoud Sadjadi�School of Computing and Information Sciences�Florida International University

December 1st , 2023

Senior Project Final Presentation�Fall 2023

2 of 11

Problem definition

Whole Project:

-There is no way to change the theme from iPhones

-There are a couple of theme options that a user can change on the desktop application but not yet on the mobile app including the following:

  • Background Color
  • Background Image
  • App Logo
  • App Slogan

-These theme options can’t be changed through the database because they can conflict with an organization’s server theme.

We were prompted to bring a solution to make Nextcloud a customizable app for all .

3 of 11

Project Management

Task

Start Date

End Date

Duration

Project Initiation

08/28/2023

09/11/2023

2 weeks

Requirements Gathering

09/11/2023

09/18/2023

1 week

System Design

09/18/2023

10/02/2023

2 weeks

Implementation

10/02/2023

10/30/2023

4 weeks

Performance Testing

10/30/2023

11/13/2023

2 weeks

4 of 11

Methodology

1st Sprint

  • Meet with product owner
  • Set -up development environment
  • Learn required technologies
  • Create github repo

2nd Sprint

  • Discuss possible solutions to presented problem
  • Finish setting up development environment.

3rd Sprint

  • Began development , focused on the backend logic of app
  • Created file bridge between Objective-C and Swift files

4th Sprint

  • Continue working on development for both front-end and backend
  • Created testing branches

5th Sprint

  • Finalized UI/front-end design after meeting with other teams

6th Sprint

  • Code testing and debugging

7th Sprint

  • Worked on final deliverable documentation (videos,poster,presentation)

5 of 11

Requirements: User Stories

User Story #1:

  • As a developer, I want to conduct research that is vital for the development of this project and set-up my development environment.

User Story #2:

  • As a developer , I want to make a button on the login screen for users/non-users to be able to click on and be redirected to another screen where customization of the login screen is achieved .

User Story #3:

  • As a user, I want to be able to customize the background color of the login screen of my app.

User Story #4:

  • As a user, I want to be able to customize the background of the login screen of my app with a picture from my personal device.

User Story #5:

  • As a user, I want to be able to customize the logo of the login screen of my app.

User Story #6:

  • As a user, I want to be able to customize the slogan of the login screen of my app.

User Story #7:

  • As a developer , I want to make sure my code is clean and the app behaves as expected and all features work good together.

6 of 11

Software & Hardware

The software and hardware we used to create and design this project were:

  • Xcode to write our code for our application.
  • Github to create a github repo, pull and push code and merge branches.
  • Mac terminal to handle dependencies (carthage & ios-platform xs-framework)
  • Languages used throughout the app are Swift & Objective-C

7 of 11

System Design: Architecture

8 of 11

UML/Class Diagram

9 of 11

Patterns Used

Design Patterns Used:

  • Observer Pattern:The LoginController observes changes in the ThemingController and it updates UI accordingly
  • Decorator Pattern: Applied a theming decorator to UI components to change their appearance based on customization.
  • Builder Pattern: Applied in constructing instances of Theming with various customization details.

10 of 11

App Screenshots

11 of 11

Summary

-The project represents a significant contribution towards enhancing user experience and personalization within the Nextcloud ecosystem, by providing options like changing the logo, slogan, color, name, and background image in the app.

-You can contact us at:

- aruiz261@fiu.edu -jpadr061@fiu.edu

-jcuet023@fiu.edu -scine005@fiu.edu

- Github repo : https://github.com/jcuetocalnick/NextCloudIOS.git

-Thank You!