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.

License

Notifications You must be signed in to change notification settings

cfinker/postal-demo-extended-with-authorship-verification

Repository files navigation

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

About

This project is a prototpye of an iOS mail client which uses machine learning (uClassify and Core ML 3) for authorship verification.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages