Skip to content
This project is a prototpye of an iOS mail client which uses machine learning (uClassify and Core ML 3) for authorship verification.
Swift Other
  1. Swift 98.3%
  2. Other 1.7%
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Documentation
Postal-iOS
Postal-macOS
Postal.xcodeproj
Postal.xcworkspace
Postal
PostalDemo
PostalTests
dependencies
.gitignore
.gitmodules
.swift-version
.travis.yml
Cartfile
Cartfile.resolved
LICENCE.md
Postal.podspec
README.md
UpdatableKNN.mlmodel

README.md

iOS mail (prototype) app with AI based on Postal framework

This project is a prototpye of an iOS mail client which uses machine learning (uClassify and Core ML 3 for authorship verification. The whole project is based on the framework Postal.

Repo structure

Since the further developement of iOS as well as the Postal framework, which have been not always in sync, this repo contain the Postal source code (at the state of Februrary 2019) as well as the extended Postal-Demo app, which is my prototype. This prototype is not working without any issues whith the currently state of the Postal's master branch. This is the reason why the Postal source code is in this repo too.

All folder and files on the root level are Postal folders and files. Basically also the PostalDemo folder was once a original Postal folder, but I extended this folder with some files and folders in order to create my mail authorship verification prototpye.

How to run the prototpye or to open its source code?

If you want to run or have a closer look on the prototype, you should go into the PostalDemo folder on open the PostalDemo.Xcodeproj file with Xcode (at least Xcode 11 and at least macOS 10.14). Since all dependencies are as well part of this repo (namely its the Postal framework), the project should build and run in Xcode without any fruther required commands. It could be that Xcode does not recognize on start up that all source code has been translated to Swift 5 and that it will display some warning. You can ignore this warning, and once the index of Xcode has finished, it will recognize that there is no reason to warn.

Xcode Project names

When opening the Xcode Project PostalDemo.Xcodeproj you see that the root project is called PostalDemo, since this whole porject is just an extension of the original Postal demo. In this project two more Xcode projects are integrated. The Postal.Xcodeproj contains the Postal framwork core, while the Result.Xcodeproj contains the source code generated the Cartharge while integrating Postal into the PostalDemo project (unfortunalty the name is also autogenerated and a renaming of these both did not work well). Both sub-projects are needed as explizited project since I had to convert them by myself, with the help of Xcode, to Swift 5. At this point in time the Postal framework supported originally only Swift 4. However, Sift 5 is required for executing the app on iOS 13, which is an requirement for using the Core ML 3 on-device learning.

Whats about the Postal.Xcodeproj in the root folder? Why is it here? Is there anything to know about this project?

The Postal.Xcodeproj contains the original Post framework source code and is linked to the projects in the folders PostalTests, Postal-iOS and Postal-macOS. Since all these files are from February 2019, they are all written in Siwft 3 or in Siwft 4. This results in some warnings and errors when opening Postal.Xcodeproj. Therefore these projects are more for documentation than for usage. When you want to use the Postal Framework, use the latest version of it, see its GitHub Repo.

What machine learning is used?

The app uses Core ML 3. Therefore iOS 13 is required (for on-device training). It uses uClassify as well, with a daily limit of max. 500 requests per day.

Further information and contact

This project is supported by netidee.

As soon as my master thesis is finished, some more details of the usage of this prototype, can be found on the netidee-website. The master thesis with all evaluation results and interessting implementation details will be published there.

Developer: Christian Finker, IMS18, FH JOANNUEM (IT- and Mobile Security); Website of developer: https://webrabbit.at

You can’t perform that action at this time.