| Action | Shortcut |
|---|---|
| Scroll line up | ctrl+shift+up (also ⌥+⌘+⇞ and ⌘+↑ on macOS) |
| Scroll line down | ctrl+shift+down (also ⌥+⌘+⇟ and ⌘+↓ on macOS) |
| Scroll page up | ctrl+shift+page_up (also ⌘+⇞ on macOS) |
| Scroll page down | ctrl+shift+page_down (also ⌘+⇟ on macOS) |
As someone who has released many apps starting in 2015 using frameworks such as Cordova and Ionic, and more recently using React Native and Expo, I have learned that the rules for publishing apps can change frequently and can sometimes be challenging to navigate. With that in mind, I want to provide a brief guide to help others navigate the process. While this guide may not cover every aspect of publishing an app, it does cover general tips and information that should be useful for anyone looking to release their app on the App Store or Google Play.
There are significant differences between Apple and Google when it comes to metadata. Apple is generally stricter than Google, so it is advisable to follow Apple's guidelines to ensure the best chances of success on both platforms. Here are some tips to keep in mind:
- Keep your screenshots and promo videos separat
| #include <iterator> | |
| #include <utility> | |
| // see live example on http://coliru.stacked-crooked.com/a/591f4db5a008cb5a | |
| template<class Stream, class Vector, class Begin = decltype(std::begin(std::declval<Vector>()))> | |
| inline Stream& operator<<(Stream& stream, const Vector& vect) { | |
| const char* dlm = ""; | |
| for(const auto& i : vect) { stream << dlm << i; dlm = ", "; } | |
| return stream; | |
| } |
| import Cocoa | |
| struct ImageConstants { | |
| static let gifDelayTime: NSNumber = 2 | |
| static let gifLoopCount:NSNumber = 10 | |
| } | |
| extension NSImage { | |
| //swift 2.0 translation/adaptation from https://gist.github.com/akisute/1141953 |
| Hey Isarathg this is classic use case of IOS devices. Which don't let you access any Photo Album assets directly using path value. To cross check my answer please just check FileExistsAtPath for your file like below -: | |
| println(NSFileManager.defaultManager().fileExistsAtPath( urlvalue.path!)) | |
| O/P you will get => False | |
| I also end up with this issue couple of days back After reading the whole IOS documentation. What I have figured it out "We can only access PhotoAlbum Assets if and only if we have PHImageManager session open". To cross check this statement please try below code -: | |
| var currentVideofetch: PHFetchResult! | |
| required init(coder aDecoder: NSCoder) { |
| # Assuming an Ubuntu Docker image | |
| $ docker run -it <image> /bin/bash |
| + (UIImage *)imageFromGifData:(NSData *)data { | |
| CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFTypeRef)data, NULL); | |
| if (!source) { | |
| return nil; | |
| } | |
| CFDictionaryRef dict = CGImageSourceCopyPropertiesAtIndex(source, 0, NULL); | |
| NSDictionary *metadata = (__bridge NSDictionary *)dict; | |
| CGFloat offset = 0.0; | |
| if (metadata[@"{GIF}"]) { | |
| NSDictionary *meta = metadata[@"{GIF}"]; |
| #import <UIKit/UIKit.h> | |
| #import <ImageIO/ImageIO.h> | |
| #import <MobileCoreServices/MobileCoreServices.h> | |
| - (void)exportAnimatedGif | |
| { | |
| UIImage *shacho = [UIImage imageNamed:@"shacho.png"]; | |
| UIImage *bucho = [UIImage imageNamed:@"bucho.jpeg"]; | |
| NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"animated.gif"]; |
| // Converts an ArrayBuffer directly to base64, without any intermediate 'convert to string then | |
| // use window.btoa' step. According to my tests, this appears to be a faster approach: | |
| // http://jsperf.com/encoding-xhr-image-data/5 | |
| /* | |
| MIT LICENSE | |
| Copyright 2011 Jon Leighton | |
| Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: |