Giter VIP home page Giter VIP logo

fluffcorn / ios-sticker-packs-app Goto Github PK

View Code? Open in Web Editor NEW
50.0 8.0 24.0 26.02 MB

Customizable sticker iMessage App including tabbed category switcher and sticker size slider.

Home Page: https://www.facebook.com/fluffcorn

License: MIT License

Objective-C 88.47% C 0.50% Swift 10.75% Shell 0.27%
imessage-sticker apng sticker-size-slider stickers sticker-pack sticker-category fluffcorn-stickers feedback-submission wastickers whatsapp-stickers

ios-sticker-packs-app's Introduction

ios-sticker-packs-app

A customizable sticker iMessage App with tabbed category switcher, sticker size slider, and WhatsApp sticker integration.

AppStore WhatsApp badge Telegram badge Facebook badge Code License badge Art License badge

Fluffcorn screenshot Fluffcorn screenshot sticker size slider visible Fluffcorn WhatsApp Stickers integration

  • Features
    • Customizable tabbed category switcher.
    • User adjustable sticker size slider.
      • Adjustable default sticker size.
    • User feedback submission.
      • Pre-setup with Google Sheets as storage.
    • Persistence for:
      • Last selected category
      • Adjusted sticker size
    • WhatsApp Stickers (WAStickers) installation for each sticker category.
    • Analytics integration.
      • Firebase Crashlytics/Analytics/Performance enabled.

This code is used in Fluffcorn stickers, a iMessage sticker app. If you want to preview its functionality, download Fluffcorn on the App Store for free HERE. Fluffcorn Stickers are also available on Telegram here.

How to use for your own stickers

  1. Clone or download ios-sticker-packs-app.
  2. Delete all resources in Art Assets in Xcode. See Removing Existing Art Assets.
  3. Add your own sticker images to the project.
  4. Edit stickerPacks.json to include your own stickers. See How to edit stickerPacks.json.
  5. Set default sticker size. See Configuring Default Sticker Size.
  6. Set the sticker size slider visibility. See Configuring Sticker Size Slider Visibility.
  7. Edit about.txt to include your app information.
  8. Edit App Name, Bundle ID, Version, Build data.
  9. Setup or disable Firebase integration. See Configuring Firebase Integration
  10. Submit to App Store.

How to edit stickerPacks.json

stickerPacks.json is in JSON format.

There are two keys in the root dictionary.

  • packOrder is an array with order of the "packs" (categories).
  • allPacks is a dictionary containing keys for each "pack".
    • Each pack is a dictionary with two keys, filename and order.
    • filename key for a pack specifies the category "tray" icon (currently only used for WhatsApp Stickers).
    • order key is an array containing a dictionary for each sticker in that pack.
      • filename is the filename of the sticker in your project.
      • description is the accessibility label for the sticker for human reference. The actual localized text that is used is located in Localizable.strings. The description value and localized English string in Localizable.strings should be kept the identical consistency.
      • emoji is an array of up to 3 unicode strings of length 1 containing related emojis. (Only used for WhatsApp Stickers).

All images used for WhatsApp needs add a prefix of wa_ to the filename. A listed filename of category1_tray_icon will use the file named wa_category1_tray_icon.png for any WhatsApp Sticker needs.

Configuring Default Sticker Size

  • Set kDefaultStickerSize in Constants.h to 0,1, 2 for MSStickerSizeSmall, MSStickerSizeRegular,MSStickerSizeLarge respectively.
  • MSStickerSize reference.
Sticker Size Points @3x Pixels (the image size you want to use) DPI Max Size
MSStickerSizeSmall 100 x 100 300 x 300 72 N/A
MSStickerSizeRegular 136 x 136 408 x 408 72 N/A
MSStickerSizeLarge 206 x 206 618 x 618 72 N/A
WhatsApp Sticker Pack Tray Icon N/A 96 x 96 72 N/A
WhatsApp Sticker N/A 512 x 512 72 100kb

You should use the listed image size if you intend to display a single sticker size or else stickers may encounter size issues when used in messages.

Batch image resizing (Photoshop) and compression (pngcrush) scripts are in miscellaneous directory.

Configuring Sticker Size Slider Visibility

  • If you want the sticker size slider to be visible, set kStickerSizeSliderVisibility in Constants.h to YES.
  • If you want the sticker size slider to NOT be visible, set kStickerSizeSliderVisibility in Constants.h to NO.

Configuring Feedback Submission

  • If you want Feedback submission, set kFeedbackAction in Constants.h to YES. Follow this post and edit sendFeedbackAction: in MessagesViewController.h with the appropriate values for your Google Form.
  • If you do NOT want Feedback submission, set kFeedbackAction in Constants.h to NO.

Configuring Firebase Analytics Integration

  • Add your application's `GoogleService-Info.plist to the project.

Fabric Integration has been deprecated and replaced with Firebase Analytics & Performance Integration. The recommended way to keep your Firebase API key private in a public repository is to add GoogleService-Info.plist to the .gitignore file.

  • If you do NOT want Firebase integration, set kFirebaseEnabled in Constants.h to NO.
    • Remove Firebase resources and Firebase frameworks.

WhatsApp Stickers Integration

See How to edit stickerPacks.json and Configuring Default Sticker Size sections above for WhatsApp Sticker asset information.

Using APNG stickers

There are some non-obvious steps to using animated PNG (APNG) stickers in a iMessage App versus a no-code Sticker app.

  • APNG must be under 500kb. Xcode processes images during build time and if your image is under but too close to 500kb, the image will be too big and the Apple sticker browser will not work correctly.
  • APNG files must be imported with the .png extension.
  • Make sure the imported files have MessagesExtension selected for target membership.

Removing Existing Art Assets

When using ios-sticker-packs-app for your own iMessage sticker app, remove all resources in the Art Assets file group in the Xcode Navigator to get rid of the Fluffcorn art assets and provide your own art.

Settings.bundle

Standalone iMessage apps do not currently seem to appear in the Settings app. Settings.bundle is included if you would like a Settings menu in an iOS app. The bundle in this project comes with support for adjusting sticker size.

License and Contributing

All art assets in this repository (any Fluffcorn images including PNG and APNG) are © 2016 Alisha Liu under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. Creative Commons License

All third party code used by Fluffcorn is copyright of their rightful owners.

All original code and text assets in this repository are made available under MIT License.

Visible attribution to Fluffcorn/ios-sticker-packs-app by Anson Liu and Alisha Liu required if code, text, or art are used in any way in a public or commercial product.

Issues, feature requests, and contributions welcome! All contributions will be placed under MIT License.

ios-sticker-packs-app's People

Contributors

ansonl avatar inkspil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ios-sticker-packs-app's Issues

No installation instructions

Hello, thanks for posting this you have saved my life with it.

But I can't get it to run. I'm getting constant compile errors.

What are the installation instructions?

Unable to run project; More errors after deleting #import "Firebase.h"

Hi, I tried to clone the entire folder but when I run the project (without editing or deleting anything), I am unable to run the project due to 4 MessageExtension issues, such as:

error: /Users/J/Downloads/ios-sticker-packs-app-master/FirebaseCrashlytics.xcframework/ios-i386_x86_64-simulator/FirebaseCrashlytics.framework: No such file or directory (in target 'MessagesExtension' from project 'Fluffcorn')

Please refer to screenshot attached.

0

Also, as I do not want Firebase integration, I tried to remove the Firebase references but resulted in more errors. Steps I've done:

  1. Cloned the entire folder.
  2. Set kFirebaseEnabled in Constants.h to NO.
  3. Deleted 'Firebase resources'.
  4. Deleted 'Firebase frameworks'.
    Then I received an error of "'Firebase.h' file not found"
  5. So I deleted the line 17 "#import "Firebase.h""
    Then there were more errors. Screenshot attached.

1

  1. I tried deleted the related errors.
    Then I received an error saying "framework not found WebP".

"ld: warning: directory not found for option '-F/Users/J/Downloads/ios-sticker-packs-app-master/WAStickers frameworks'
ld: framework not found WebP
clang: error: linker command failed with exit code 1 (use -v to see invocation)"

2

Appreciate your help please!

Can't seem to link WebP

Hi there,

On my M1 I can't seem to link WebP, despite the WebP framework being present.
WebP is in the search path, and I verified it exists in Finder, so unsure why the linker has issues.
What's the right way to add WebP to my Xcode project?

ld: framework 'WebP' not found
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Much thanks in advance for your time.

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.