Giter Club home page Giter Club logo

emojiworkshop's Introduction

  • 👋 Hi, I’m @jpavley
  • 👀 I’m interested in iOS Development
  • 🌱 I’m almost always workoing on a new app!
  • 💞️ Check out my lastest app Bit Quiz 16
  • 📫 How to reach me [email protected]

emojiworkshop's People

Contributors

jpavley avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

emojiworkshop's Issues

Clean up console log output

The search text is:
The search text is: Bug
== scrollViewWillBeginDragging()
== scrollViewWillBeginDragging()
== scrollViewWillBeginDragging()
== scrollViewWillBeginDragging()
== scrollViewWillBeginDragging()
== scrollViewWillBeginDragging()
== scrollViewWillBeginDragging()
== scrollViewWillBeginDragging()
The search text is: Bug

Tag enrichment

W3C Emoji group, subgroup, and descriptions are just not enough!

Refactor code Uncle Bob Style

  • Test coverage 100%
  • Unit, Integration, and Mutation Testing
  • Red-Green Refactoring
  • Functions no more than 4 lines long
  • Discover all embedded classes (functions)

Search with CoreML

Feed the emoji images into Apple's machine learning engine and use it to generate new text metadata. Emoji descriptions are often metaphorical and not descriptive. Person Frowning is a yellow woman with blond hair and a purple shirt. Seaching "woman" or "yellow" will not find her.

Touchable tags

Clean up tags and turn them into buttons

  • Stem and de-dupe
  • Transform into buttons
  • Design default table view so the ID# is under the Emoji and the tags have more room and are bigger.

Rename App

Emoji Detective?
Emoji Inspector?
Emoji Agent?
Emoji Spy?
Emoji Explorer?

Code clean up -> Functions!

Uncle Bob says a function should be 1 to 4 lines long. And For loops and If clauses should contain only on line. And for loops should be transformed into map, filter, or reduce functions. Code should be dry and not wet (Don't repeat yourself).

Change Priority property to ID

  • Renumber from 0.
  • Don't use ID internally as it's really a position in the test file which will change over time. Instead use the value of the emoji itself.

Support multiple views via gestures

  • Default: Table view.
  • Swipe Left: zoomed out view with just clickable emojis organized into clickable categories. Touching an emoji goes to its detail view. Touching a category filters to just that category in table view.
  • Swipe Right: Detail views in long table.
  • Shake the phone to restore to the default view with no filtering

Dynamic scoping of search results

While there are over 50 categories of emoji they are both too specific and too general--and there are too many of them! Example: Smileys & People: face-fantasy is just 11 emoji. It it leaves out many other fantasy emoji (anthropomorphic grinning cat faces, genies, baby angels, Mr. and Mrs. Claus, mages, etc..) There are 125 emoji tagged fantasy and searching for fantasy yields much better results than browsing by category.

But searching by fantasy or other tags with a large number of emoji would benefit by dynamic scoping of search results. Fantasy could be broken down into faces, people, yellow and all.

The scoping bar doesn't have space for more than a few terms and all needs to be the first term. Plus I don't want to manually create scopes for each search results (as that would be impossible!)

So a good toy algorithm might be:

  • if the search results are over a screenful (6-10) emoji then calculate possible scope terms
  • if scope terms are more then 2 then dynamically display scope bar with calculated terms
  • Scope terms are calculated by looking at popular tags. In the fantasy example there are 11 faces, 114 people, 114 persons, and large numbers of skin, tone, man, woman, etc... Tag groups would be have to be ranked by popularity and filtered by overlap (people and persons return the same results, skin and tone return the same results). The top 2-5 tag groups (depending on label length) would then be displayed in order of popularity as scope terms (with all always the first term).
  • Scope terms would have to live with search results and should not be recalculated unless the list of emoji tags changes (say with user generated tagging).
  • Term calculation needs to be super fast so the app can will respond instantly. Perhaps dynamic scoping is a feature of hitting the search button and not incremental results while typing.

Why are there 200 search results with "" as a term?

(key: "person", value: 1507)
(key: "smileys", value: 1507)
(key: "tone", value: 1060)
(key: "skin", value: 1060)
(key: "medium", value: 642)
(key: "light", value: 446)
(key: "dark", value: 424)
(key: "man", value: 386)
(key: "woman", value: 379)
(key: "role", value: 362)
(key: "flag", value: 271)
(key: "sport", value: 261)
(key: "country", value: 257)
(key: "body", value: 212)
(key: "place", value: 211)
(key: "travel", value: 207)
(key: "symbols", value: 205)
(key: "", value: 200)
(key: "gesture", value: 168)
(key: "object", value: 162)

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.