Giter VIP home page Giter VIP logo

as-catalog's Introduction

Agnieszka Światły Catalog

What is this repository for?

  • Store and keep track of all the changes while developing the iPad app for the atelier Agnieszka Światły.

  • Deployment Target: 13.0

  • Version: 4.0.

Getting Started

Dependencies

What you need to run this app:

  • Mac running macOS Catalina.

  • Swift and Xcode.

  • Ensure you're running the latest versions macOS 10.xx.x, Swift 5.x and Xcode 11.x.x.

Note: Xcode is not strictly required, but is highly recommended. All dependencies required to run the project (including Swift) will be installed automatically by Xcode.

Running the app (Xcode)

After you have installed Xcode and all dependencies, you can now run the app. For that, you need to select a destination to run the project into. This can be either through a Simulator provided by Xcode, or your own iPhone device plugged to the computer via USB.

Note: In order to be able, you need to sign in with Apple ID, so Xcode will use the development certificate. To review your Apple ID and profile, check https://developer.apple.com/membercenter/

After selecting preferred destination, click on Product > Run or key Cmd+R.

Deploying the app (Xcode)

Build settings

  1. Go to Project/Targets > Catalog. Make sure that Version is the same set on App Store Connect.

  2. Go to Product > Scheme > Edit Scheme or key Cmd+<. Select Archive and check that Build Configuration is set to Release.

Archiving and validating

Click on Product > Archive

Note: The Archive feature is disabled if you are using a Simulator. Select Generic iOS Device or your own devide as destination

On the Organizer window that will be shown after archiving, Click on Validate... to check if there are any issues, oron Upload to App Store... to release the build to App Store Connect.

Localization

This app supports Localization, currently in two languages: English and Spanish. In order to run the app in one specific language, go to Product > Scheme > Edit Scheme or key Cmd+<. Select Run and select on Application Language the preferred one.

Note: If the language selected is not supported, default language (English) will be displayed.

Extensions

Any extensions needed for the project, shall try to be stored in separate files, so it can be reused freely when needed

For example, if we would like to create an extension for String:

  1. Create a String+<ExtensionName>.swift file in the Kalisten/utils/extensions directory.

  2. Configure inside such file the behaviour of the extension.

  3. Remember to import Foundation before declaring the extension String{}.

import Foundation

extension String {
    func myExtension() -> String {
        //Code here...
    }
}
  1. Then, when willing to use this extension, simply proceed as follows:
const myString: String = 'string content';
const newString: String = myString.myExtension();

Useful Information

Use a Swift-aware editor

As mentioned, Xcode provides a lot of facilities and transparency when it comes to develop applications using Swift. That said, there are other great editors which can also be used to develop Swift apps:

CocoaPods (Currently disabled)

This app supports CocoaPods, so third parties from this dependency manager can be added.

Install

Simply run the command below to install CocoaPods, using sudo if required:

$ sudo gem install cocoapods

Getting started

In the root directory, there is a Podfile, which shall have a format similar to the one that follows:

platform :ios, '8.0'
use_frameworks!

target 'Catalog' do
  pod 'AFNetworking', '~> 2.6'
  pod 'ORStackView', '~> 3.0'
  pod 'SwiftyJSON', '~> 2.3'
end

Note: If there would not be such file, you can simply create one with the command pod init

Now, to install all dependencies listed in the Podfile in the project:

$ pod install

Make sure you use the Xcode workspace file Catalog.xcworkspace, instead of the default one, every time you open the project.

Now you can import your dependencies e.g.:

#import <Reachability/Reachability.h>

Further Information

For more information about Cocoa Pods, check the full guide.

Build Don'ts

The following are some things that will make the build compile fail.

  • Don't use Catalog.xcworkspace as file to open the project.
  • Don't install dependencies being used.
  • Don't import properly dependencies and being in use
  • Use deprecated syntax from elder versions of Swift. Refer to Swift Documentation for more info.

Who do I talk to?

as-catalog's People

Contributors

pedrosolisgarcia avatar

as-catalog's Issues

The Catalog View does lags when scrolling

Steps to reproduce:

  1. Go to Catalog from Home Screen

  2. Swipe left to horizontally scroll the catalog

  3. Click on the avatar image

Expected Result:
The catalog scrolls fluently.

Actual Result:
The catalog scrolls with lag, affecting UX

NOTES:
This could be caused because of the way the data is passed to the cells, or because the cells are not being reused. There is a medium post which discusses this further.

Add Custom Colors Extension

1. Narrative

The purpose of the story is: As a developer working on the appI want to add extensions for:

  • Hex code Colors

  • Custom Colors

So I can have simpler and better readability when I am adding or using colors

2. Acceptance Criteria

  • The hex extension must accept hexcodes and convert them to UIColor

  • The custom colors extension will make UIColor accesible the hex colors

3. Useful Information

References of implementation from other projects:

Refactor Localization approach

1. Narrative

The purpose of the story is: As a developer working on the app
I want to refactor Localization by:

  • Creating a String Extension for localization

  • Use Localized String feature from apple for localization

So I can have a more elegant way of translating the apps content

2. Acceptance Criteria

  • The functionality has to remain the same

  • All the content to be translated shall be gathered in the .string files for the different languages

  • Create a String Extension to simplify the code.

3. Useful Information

References of implementation from other projects:

4. Subtasks

  • Add keys and use instead of LocalData

  • Change app language on runtime

Add a Collection Check View when entering proper store ID

1. Narrative

The purpose of the story is: As a user administrator making use of the app
After adding proper id in store id pop up, and if there is a new collection available,
I want to display a window that:

  • Checks if there is a new collection available,
  • Gives the admin the option to update.

So I can choose wether if I want to have the app up to date with the latest collection.

2. Acceptance Criteria

  • The Collection Check View shall be shown only if the following store ids are submitted: WRO-ID, TEST-ID, and if there is a new collection available.
  • The view will check on load if there is a new collection by:
    • retrieving the id and date of the collection available on the server
    • If the id does not match with the local, then notify of a new collection available
    • If the id matches the local, check the date
    • If the date does not match, then notify of a new collection available
    • If the date matches, then return

3. Useful Info

Subtasks

  • Create the view
  • Display view if there is version available
  • Download the new view and add to UserDefaults

Move local app information to JSON files

1. Narrative

The purpose of the story is: As a developer working on the app
I want to move the local information to JSON files

So I can properly access the information and not have it hardcoded.

2. Acceptance Criteria

Most of the content to be moved/used will have to support different languages. Ensure you use string localizable.

3. Useful Information

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.